如何在更改每一行的同时复制文件 [bol]?

如何在更改每一行的同时复制文件 [bol]?

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

相关内容