假设我有一个名为output.txt的文件。 output.txt中的每一行都以不同的单词开头。如果任何行以“word”开头,然后在行尾添加“new word”,我该如何执行?
答案 0 :(得分:2)
这是使用Perl的一种方式。
perl -p -e'$_ .= "new word" if /^word/" output.txt > newfile.txt
如果你想编辑文件,你可以使用Perl的-i
标志进行"就地编辑"
perl -i -p -e'$_ .= "new word" if /^word/" output.txt
你也可以使用sed或awk。
答案 1 :(得分:2)
安迪的回答很好。如果您想使用sed
,您可以
sed 's/\(^word.*$\)/\1new word/' input.txt > output.txt
答案 2 :(得分:1)
while read i; do
if [[ $i == word* ]]; then
echo ${i}newword >> newfile
else
echo $i >> newfile
fi
done < "file.txt"
答案 3 :(得分:0)
AWK:
awk '$1 == "word" {$(NF+1) = "new word"} 1' output.txt > tempfile &&
mv tempfile output.txt
我假设您不一定需要第一个单词的正则表达式匹配