![如何在更改每一行的同时复制文件 [bol]?](https://linux22.com/image/103435/%E5%A6%82%E4%BD%95%E5%9C%A8%E6%9B%B4%E6%94%B9%E6%AF%8F%E4%B8%80%E8%A1%8C%E7%9A%84%E5%90%8C%E6%97%B6%E5%A4%8D%E5%88%B6%E6%96%87%E4%BB%B6%20%5Bbol%5D%EF%BC%9F.png)
我需要复制一个文件,以便目标文件在每一行的开头都有一些特定的字符串,并且它需要是 bash 单行。所以没有脚本和循环,只有 bol。
bol - 猛击一班人
我个人需要使用 grep 程序的命令来完成此操作。如果您能以任何可能的方式解决它,我将不胜感激,如果不使用 grep,我只是没有太多用处。
编辑:好的,不能用 grep 完成,sed 可以。
答案1
$ sed 's/^/specific string/' input >output
你说你需要使用grep
,好吧......
$ sed 's/^/specific string/' input | grep . >output
答案2
根据要求,不带sed
和带 GNU grep
:
grep --label="SPECIFIC STRING" --null -H ^ input_file.txt
PS:如果你想知道,不,这不是一个严肃的答案
答案3
也许这个(未经测试):
cat file.txt | sed 's/^\(.*\)$/new text at line start\1/g' > file-copy.txt
也可以使用awk
而不是sed
答案4
既然你具体要求bash
,这里有一句台词(虽然很长):
{ while IFS= read -r line ;do printf "%s %s\n" "SPECIAL" "$line" ; done < input.txt ; [ -n "$line" ] && printf "%s %s\n" "SPECIAL" "$line" ; }
但当然更短的方法是通过awk
:
awk '{print "SPECIAL ",$0}' input.txt