dan*_*T_W 7 sed text-formatting
我有数百个*.txt
具有通用格式的文件。
我可以在一个文件的特定位置插入一个逗号,如何概括以下代码以*.txt
在目录中所有文件的多个位置应用此操作?
sed -i 's/^\(.\{4\}\)/\1,/' blank.txt
Run Code Online (Sandbox Code Playgroud)
例如在位置 4、8、22 等处插入逗号。
也许是这样的?
for i in *.txt; do
sed -i 's/^\(.\{4\}\)/\1,/' $i
done
Run Code Online (Sandbox Code Playgroud)
在一般的方式,你可以做:
sed 's/./&,/4' <in >out
Run Code Online (Sandbox Code Playgroud)
这会将输出中的逗号附加到所有输入行的第 4 个字符,至少有那么多字符。
而且,如果你接受我的建议,你通常不应该使用-i
switch 到任何sed
提供一个。
从最右边的开始:
sed -i 's/./&,/22;s/./&,/8;s/./&,/4' ./*.txt
Run Code Online (Sandbox Code Playgroud)
否则,第一个替换会影响第二个替换的偏移量。你总是可以解释它:
sed -i 's/./&,/4;s/./&,/9;s/./&,/24' ./*.txt
Run Code Online (Sandbox Code Playgroud)