在Linux中替换文件中的某行内容,可以使用多种方法,以下介绍几种常见的:
一、使用sed命令
sed
(stream editor)是一个流编辑器,用于对输入流(文件或管道)进行基本的文本转换操作。n
行内容,可以使用sed 'n s/.*/new_content/' file
命令。例如,要替换test.txt
文件中的第3行内容为new line
,可以使用sed '3 s/.*/new line/' test.txt
。sed '/pattern/ s/.*/new_content/' file
。例如,将test.txt
文件中包含hello
字符串的行替换为hi there
,可以使用sed '/hello/ s/.*/hi there/' test.txt
。sed
非常方便。例如修改nginx
配置文件中的监听端口。example.txt
的文件,内容如下:example.txt
的文件,内容如下:keyword
的行替换为new line
,可以使用以下命令:keyword
的行替换为new line
,可以使用以下命令:sed -i '/keyword/ s/.*/new line/' example.txt
。二、使用awk命令
awk
是一种编程语言,主要用于在Linux/Unix下对文本和数据进行处理。它可以按照特定的规则对输入的每一行进行分析和处理。awk 'NR == n{$0 = "new_content"}1' file
,例如将test.txt
文件中的第2行替换为new second line
,可以使用awk 'NR == 2{$0 = "new second line"}1' test.txt
。awk '/pattern/{$0 = "new_content"}1' file
。例如将包含foo
的行替换为bar
,可以使用awk '/foo/{$0 = "bar"}1' test.txt
。example.txt
文件,要将包含keyword
的行替换为new line
,可以使用:example.txt
文件,要将包含keyword
的行替换为new line
,可以使用:awk -i inplace '/keyword>{$0 = "new line"}1' example.txt
(需要gawk
版本支持inplace
编辑)。领取专属 10元无门槛券
手把手带您无忧上云