如何更改文本文件中的单个单词?

时间:2014-07-10 18:45:59

标签: shell

假设我有一个名为name.txt的文件,其中包含以下内容:

white-list=true
max-players=3
motd=Welcome // Version: One

我如何才能找到世界One并仅用Two取代这个世界?

2 个答案:

答案 0 :(得分:2)

您可以使用sed 's/One/Two/1'替换一次出现的One with Two(将'1'替换为'g'以替换每次出现的One)。

# Note the /1 makes the One to Two happen once.
echo "Welcome // Version: One" | sed 's/One/Two/1'

因此,对于文件“name.txt”,你可以做

cat "name.txt" | sed 's/One/Two/1' > "temp.name.txt" && mv "temp.name.txt" "name.txt"

答案 1 :(得分:1)

作为Elliot Frisch答案的补充,某些版本的sed有一个-i选项可以更改"到位" (实际上,sed本身为您创建临时文件)

   -i[SUFFIX], --in-place[=SUFFIX]

          edit files in place (makes backup if extension supplied)
     来自man sed

(GNU sed版本4.2.1)

所以你可以简化使用命令:

sed -i 's/One/Two/' name.txt

sed -i 's/One/Two/g' name.txt