假设我有一个名为 output.txt 的文件。output.txt 中的每一行都以不同的单词开头。如果任何行以“word”开头然后将“new word”添加到行尾,我该如何执行?
问问题
81 次
4 回答
2
安迪的回答很好。如果你想使用sed
你可以做
sed 's/\(^word.*$\)/\1new word/' input.txt > output.txt
于 2013-03-24T01:22:00.297 回答
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。
于 2013-03-24T01:18:41.527 回答
1
while read i; do
if [[ $i == word* ]]; then
echo ${i}newword >> newfile
else
echo $i >> newfile
fi
done < "file.txt"
于 2013-03-24T01:20:53.473 回答
0
awk:
awk '$1 == "word" {$(NF+1) = "new word"} 1' output.txt > tempfile &&
mv tempfile output.txt
我假设您不一定需要第一个单词的正则表达式匹配
于 2013-03-24T01:54:33.103 回答