每130个字符向一个没有行的文件中添加一行,什么是高效的BASH-one-liner?

每130个字符向一个没有行的文件中添加一行,什么是高效的BASH-one-liner?,bash,command-line,tokenize,Bash,Command Line,Tokenize,我正在尝试处理一些缺少行分隔符的较大文件。我想用grep和sed等面向行的工具来处理它们 我想在我的管道前面放一些东西,每130个字符插入一个换行符。我对修改输入文件不感兴趣 在没有行的文件中,每130个字符添加一行是什么样的高效BASH one liner?我在提问中找到了答案。另一种表达这个问题以理解这个答案的方法是:一个高效的BASH-one-liner对于每次读取130个字符的文件来说,是什么 答案是BASH内置的read。这是一个非常适合这一目的的强大工具 cat unlined_da

我正在尝试处理一些缺少行分隔符的较大文件。我想用grep和sed等面向行的工具来处理它们

我想在我的管道前面放一些东西,每130个字符插入一个换行符。我对修改输入文件不感兴趣


在没有行的文件中,每130个字符添加一行是什么样的高效BASH one liner?

我在提问中找到了答案。另一种表达这个问题以理解这个答案的方法是:一个高效的BASH-one-liner对于每次读取130个字符的文件来说,是什么

答案是BASH内置的
read
。这是一个非常适合这一目的的强大工具

cat unlined_data.txt | while read -n130 record ; do echo $record ; done # | rest of pipeline

可能有一个更优雅的解决方案,我很乐意看到。

我在提问中找到了答案。另一种表达这个问题以理解这个答案的方法是:一个高效的BASH-one-liner对于每次读取130个字符的文件来说,是什么

答案是BASH内置的
read
。这是一个非常适合这一目的的强大工具

cat unlined_data.txt | while read -n130 record ; do echo $record ; done # | rest of pipeline

可能会有一个更优雅的解决方案,我很乐意看到。

如果您真的想要高效,有一个特殊的命令(coreutils的一部分)用于此:

fold -w130 file | ...

如果您真的想要高效,有一个特殊的命令(coreutils的一部分)用于:

fold -w130 file | ...

您确实需要
read-r
,以及
echo“$record”
。即使如此,您也会发现空格字符偶尔会被删除(如果它们恰好出现在130个字符的读取末尾)。使用
折叠
以获得更高的精度。缺少空白的修复方法是将IFS设置为nothing:
而IFS=read-r-n130记录;做回显“$record”;完成
您真的想要
读取-r
,并且
回显“$record”
。即使如此,您也会发现空格字符偶尔会被删除(如果它们恰好出现在130个字符的读取末尾)。使用
折叠
以获得更高的精度。缺少空白的修复方法是将IFS设置为nothing:
而IFS=read-r-n130记录;做回显“$record”;完成
优雅。比我的解决方案干净多了。谢谢,很优雅。比我的解决方案干净多了。非常感谢。