Linux sed命令用法与示例
时间:2020-02-23 14:39:59 来源:igfitidea点击:
Sed是Stream EDitor的缩写,是用于对文件执行文本转换和操作的命令。
其中一些转换包括搜索和替换文本。
使用Linux sed命令,即使不打开文本文件也可以对其进行操作和编辑。
在本教程中,您将学习如何使用sed命令操作文本文件。
Linux sed命令语法
$sed {OPTIONS} filename
在本教程中,我们将使用linuxgeek.txt
文件作为参考文件。
# cat linuxgeek.txt
1.替换或者替换字符串
在大多数情况下,sed命令用于替换文本字符串。
以下命令将" Linux"替换为" Unix"。
# sed 's/Linux/Unix/' linuxgeek.txt
命令中的" s"是替换指示器。
/
是分隔符" Linux"是搜索词
" unix"是替代术语
缺省情况下,sed命令仅替换一行中的第一个匹配项。
随后出现的情况将不会被替换或者替换。
2.替换或者替换一行中的第n个事件
如果要替换一行中的第二个字符串,请使用/2
标志,如图所示。
# sed 's/Linux/Unix/2' linuxgeek.txt
3.替换或者替换文件中所有出现的模式
要替换文件中所有出现的搜索模式,请使用/g
标志。
/g是全局替换。
# sed 's/Linux/Unix/g' linuxgeek.txt
4.仅替换或者替换在特定行中出现的所有字符串
如果要替换特定行(例如第2行)中出现的所有字符串,请使用以下语法
# sed '2 s/Linux/Unix/g' linuxgeek.txt
5.在特定范围的行中替换或者替换字符串
如果要指定将发生字符串替换的行范围,请使用以下示例。
该示例指示替换发生在第1 -3行
# sed '1,3 s/Linux/Unix/g' linuxgeek.txt
此外,您可以从特定行到文件末尾替换文本,如下所示
# sed '2,$s/Linux/Unix/g' linuxgeek.txt
该命令的作用是替换从文件的第二行到最后一行的所有匹配项。
6.括号中每个单词的第一个字符
下面的示例演示如何在一行的每个单词的第一个字符上加上括号。
$echo "Hey Guys, Welcome To Linux Operating System" | sed 's/\(\b[A-Z]\)/\(\)/g'
7.从文件中删除行
您也可以使用linux sed命令删除文件中的行。
例子
语法:
$sed 'nd' filename.txt
要删除文件中的第三行,请执行
$sed '3d' linuxgeek.txt
要删除行的范围(例如,从第3行到第5行),请运行以下命令:
$sed '3,5d' linuxgeek.txt