Linux sed命令

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

上一篇:第2章 Linux基础篇-Linux入门


下一篇:2021-2022-1-diocs-Unix/Linux系统编程第九周学习笔记