我有一个1行文字,称为文件output
。 我有写访问该文件。 我可以从它没有任何问题的编辑更改。
$ cat output
1
$ ls -l o*
-rw-rw-r-- 1 jbk jbk 2 Jan 27 18:44 output
我想要做的就是替换该文件用一个新值的第一个(也是唯一一个)线,无论是1或0。在我看来,中美战略经济对话应该是为这个完美的:
$ sed '1 c\ 0' output
0
$ cat output
1
但它永远不会改变的文件。 我已经试过了分布在2号线的反斜杠,并用双引号,但我不能把它摆在第一线0(或其他任何东西)。
桑达运行在流和打印输出到标准输出。
它不修改输入文件。
它通常使用这样的,当你想捕捉它在文件的输出:
#
# replace every occurrence of foo with bar in input-file
#
sed 's/foo/bar/g' input-file > output-file
上述命令调用sed
上input-file
和输出到一个名为新文件重定向 output-file
。
根据您的平台,您可能能够使用的sed的-i
选项到位,修改文件:
sed -i.bak 's/foo/bar/g' input-file
注意:
并非所有版本的sed支持-i
。
另外,不同版本的sed的实施-i
不同。
在某些平台上,您必须指定一个备份扩展(别人你不必)。
由于这是一个非常简单的文件,sed的,实际上可能是矫枉过正。 这听起来像你想要的文件有一个字符:“0”或“1”。
它可以做出更好的意义在这种情况下只覆盖该文件,而不是对其进行编辑,如:
echo "1" > output
要么
echo "0" > output