如何在bash中将一个String添加到文件行的末尾

时间:2013-03-24 01:15:57

标签: bash

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

4 个答案:

答案 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

我假设您不一定需要第一个单词的正则表达式匹配