Bash Shell内置读取
我试图模仿LinuxBash Shell内置读取,bash,macos,solaris,ksh,aix,Bash,Macos,Solaris,Ksh,Aix,我试图模仿Linuxsplit-C20MB实现 使用ksh/bash内置读取。read/readarray/mapfile会占用字节数,因此拆分的输出文件可能会以不完整的行结束,从而导致输出损坏 如何从输入文件中读取接近20mb的字节而不中断行? (AIX、Solaris和MacOS split未实现“-C”选项,因此请求)您的答案可通过bash的内置帮助命令获得: $ help read read: read ... [-n nchars] [-N nchars] ... [name ...]
split-C20MB
实现
使用ksh/bash内置读取。read/readarray/mapfile会占用字节数,因此拆分的输出文件可能会以不完整的行结束,从而导致输出损坏
如何从输入文件中读取接近20mb的字节而不中断行?
(AIX、Solaris和MacOS split未实现“-C”选项,因此请求)您的答案可通过bash的内置帮助命令获得:
$ help read
read: read ... [-n nchars] [-N nchars] ... [name ...]
...
-n nchars return after reading NCHARS characters rather than waiting
for a newline, but honor a delimiter if fewer than NCHARS
characters are read before the delimiter
-N nchars return only after reading exactly NCHARS characters, unless
EOF is encountered or read times out, ignoring any delimiter
read-N$((20*1024*1024))
应该允许您一次读取20Mb,忽略换行符。StackOverflow是帮助人们修复现有编程代码。编辑您的Q以显示示例输入/输出,以及您在编码问题解决方案方面的最佳尝试。很抱歉,对教程、研究、工具、建议、库和代码的请求已脱离主题。在这里发布更多Qs之前,请阅读、、和。好的luckRead一行,将其写入输出文件,将行长度添加到总变量中。当总数接近20mb时,启动一个新文件并将总数重置为0。或者您可以从GNU coreutils安装split
。