Linux sed命令用法与示例
Sed是Stream EDitor的缩写,是用于对文件执行文本转换和操作的命令,包括搜索和替换文本等。 使用Linux sed命令,即使不打开文本文件也可以对其进行操作和编辑。
语法命令:sed {OPTIONS} filename
1.替换字符串
在大多数情况下,sed命令用于替换文本字符串。以下命令将“ Linux ”替换为“ Unix ”。
sed 's/Linux/Unix/' linuxgeek.txt
其中:
- s是替换指示器。
- /是分隔符
- Linux是搜索词
- Unix是替代词
缺省情况下,sed命令仅替换line中的第一个匹配项。 随后出现的情况将不会被替换或替换。
2.替换一行中的第n个匹配项
示例:替换一行中的第2个字符串,使用 /2
sed 's/Linux/Unix/2' linuxgeek.txt
3.替换文件中所有的匹配项
使用全局替换 /g
sed 's/Linux/Unix/g' linuxgeek.txt
4.仅替换在特定行中出现的所有字符串
示例:替换第2行中出现的所有字符串
sed '2 s/Linux/Unix/g' linuxgeek.txt
5.在特定范围的行中替换字符串
示例1:替换第1-3行的字符串
sed '1,3 s/Linux/Unix/g' linuxgeek.txt
示例2:替换从文件的第二行到末行的所有匹配项
sed '2,$ s/Linux/Unix/g' linuxgeek.txt
6.用括号括起每个单词的第一个字符
示例:给一行的每个单词的第一个字符上加上括号。
echo "Hey Guys, Welcome To Linux Operating System" | sed 's/\(\b[A-Z]\)/\(\1\)/g'
output:
(H)ey (G)uys, (W)elcome (T)o (L)inux (O)perating (S)ystem
7.从文件中删除行
sed 'nd' filename.txt
其中,nd 表示第n行
示例1:删除文件中的第3行
sed '3d' linuxgeek.txt
示例2:删除文件中的从第3行到第5行
sed '3,5d' linuxgeek.txt
8.实例
or_dir=$1
new_dir=$2
new_dir=${new_dir//\//\\\/}
new_dir//
sed -i 's/^.*TRACE_OUTPUT_FILE.*$/TRACE_OUTPUT_FILE '$new_dir'\/mix.tr/g' $or_di
参考:https://www.journaldev.com/28984/linux-sed-command-examples