0

假设我有一个名为 output.txt 的文件。output.txt 中的每一行都以不同的单词开头。如果任何行以“word”开头然后将“new word”添加到行尾,我该如何执行?

4

4 回答 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 回答