我需要复制一个文件,以便目标文件在每一行的开头都有一些特定的字符串,并且它需要是 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