我知道这个问题之前可能已经被回答过。我在不同的地方看到过很多关于这个问题的帖子,但我通常很难找到答案。我正在寻求有关“sed”命令示例用法的帮助。
假设我想对文件“hello.txt”进行操作(与提示位于同一目录中)。任何包含短语“few”的地方都应更改为“asd”。该命令会是什么样子?
答案1
sed
是个s特雷姆编辑伊托尔,因为您可以使用|
(pipe) 发送标准流(特别是 STDIN 和 STDOUT)通过sed
编程方式即时更改它们,使其成为 Unix 哲学传统中的方便工具;但也可以使用-i
下面提到的参数直接编辑文件。
考虑以下:
sed -i -e 's/few/asd/g' hello.txt
s/
习惯于s将找到的表达式替换few
为asd
:
少数,勇敢。
asd,勇敢的人。
/g
代表“global”,意思是对整个生产线都这样做。如果您省略/g
(使用s/few/asd/
,无论如何总是需要三个斜杠)并few
在同一行上出现两次,则只有第一个few
更改为asd
:
少数男人,少数女人,勇敢的人。
孤独的男人,少数的女人,勇敢的人。
这在某些情况下很有用,例如更改行开头的特殊字符(例如,用水平制表符替换一些人用来引用电子邮件线程中先前材料的大于符号,同时在行后面留下引用的代数不等式未受影响),但在您指定的示例中任何地方 few
发生时应更换,确保您有/g
。
以下两个选项(标志)合并为一个-ie
:
-i
选项用于编辑我n 放在文件上hello.txt
。
-e
选项表示e要运行的表达式/命令,在本例中为s/
.
-i -e
注意:使用搜索/替换很重要。如果这样做-ie
,您将创建每个文件的备份,并附加字母“e”。
答案2
sed -i 's/fea/asd/g' hello.txt
G:全球的
s:代替
-我:实时处理文件到位