Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何在terminal中每隔n个字符向大文件添加一行(一行)?_Bash_Shell_Text_Sed_Replace - Fatal编程技术网

Bash 如何在terminal中每隔n个字符向大文件添加一行(一行)?

Bash 如何在terminal中每隔n个字符向大文件添加一行(一行)?,bash,shell,text,sed,replace,Bash,Shell,Text,Sed,Replace,我错过了什么 file.txt: ABCDEFGHIJKLMNOPQRSTUVWXYZ > sed "s/.\{3\}/&\n/g" < file.txt > new-file.txt ABC DEF ... VWX YZ 终端中: ABCDEFGHIJKLMNOPQRSTUVWXYZ > sed "s/.\{3\}/&\n/g" < file.txt > new-file.txt ABC DEF ... VWX YZ 预期结果:

我错过了什么

file.txt:

ABCDEFGHIJKLMNOPQRSTUVWXYZ
> sed "s/.\{3\}/&\n/g" < file.txt > new-file.txt
ABC
DEF
...
VWX
YZ
终端中:

ABCDEFGHIJKLMNOPQRSTUVWXYZ
> sed "s/.\{3\}/&\n/g" < file.txt > new-file.txt
ABC
DEF
...
VWX
YZ
预期结果:

ABCDEFGHIJKLMNOPQRSTUVWXYZ
> sed "s/.\{3\}/&\n/g" < file.txt > new-file.txt
ABC
DEF
...
VWX
YZ

一种方法是在键入
sed
命令时显式地按Enter键:

$ sed 's/.\{3\}/&\ 
/g' < file.txt > new-file.txt
$ cat new-file.txt
ABC
DEF
GHI
JKL
MNO
PQR
STU
VWX
YZ
$sed's/\{3\}/&
/g'new-file.txt
$cat new-file.txt
基础知识
DEF
GHI
JKL
MNO
PQR
斯图
VWX
YZ
使用
sed
: 或者使用
grep
: 结果:
以下内容最终为我工作:

perl -0777 -pe 's/(.{3})/\1\n/sg' < file.txt > new-file.txt
perl-0777-pe's/(.{3})/\1\n/sg'new-file.txt
仍然不知道为什么原来的不起作用

感谢您的帮助。

请使用bash:

while read -n 3 chars; do printf "%s\n" "$chars"; done < file.txt > new-file.txt
读取时-n 3个字符;是否打印“%s\n”$chars;完成new-file.txt

gnu coreutil是一个选项,尽管根据您的输入文件可能不太正确。这将换行,使行长度不超过
w
个字符,例如:


$当我在linux机器上使用GNU-sed运行它时,您的代码实际上给出了预期的结果。嗯…。\o/这是唯一一个也能够分割连续输入的答案(例如
cat/dev/random | base64 | dd cbs=10 conv=unblock
),这几乎可以工作。如果剩下的字符数少于X,则从结尾处删除。我不理解您的评论:
echo 1234568790 |读取时-n3 a;做回显“$a”;完成
——这是否没有给出预期的输出?我没有看到任何掉下来的煤块。