sed 's/root/Root/g' 1.txt
指令讲解:
s: 表示替换操作。
root: 是要被替换的文本或模式。
Root: 是用来替换的文本。
g: 是一个全局标志,表示替换每一行中的所有匹配项,而不仅仅是每一行的第一个匹配项。如果不加 g 标志,则每一行中只替换第一个匹配项。(只显示输出结果,不修改文件本身)
sed -i 's/old-string/new-string/g' filename.txt
-i 选项告诉 sed 直接编辑文件,而不是将结果输出到标准输出
sed '1i\New line at start' filename.txt
1: 表示第一行。
i: 是一个插入命令,表示在指定行之前插入文本。
\\: 在 sed 命令中,\ 是转义字符。因为 i 命令后面需要跟随要插入的文本,而文本本身可能包含特殊字符,如换行符或反斜杠,所以需要使用 \ 来转义它们。但是,在大多数 sed 实现中,只需要在插入文本之前使用 \ 来分隔命令和文本,而文本内部的换行符等不需要转义。在这里,\New 实际上会被解析为字符串 "New"(\N 没有特殊含义,所以 \ 被忽略了)。但是,为了清晰起见,有些用户可能会在换行符前也加上 \,写成 i\\,但这并不是必须的。
New line at start: 是要插入的文本。
sed '$a\\New line at end' filename.txt
$: 表示最后一行。
a: 是一个追加命令,表示在指定行之后追加文本。
\\: 在 sed 命令中,\ 是转义字符。因为 a 命令后面需要跟随要追加的文本,而文本可能包含特殊字符,如换行符或反斜杠,所以需要使用 \ 来转义它们。但是在这个特定的例子中,我们只需要在 a 命令和要追加的文本之间使用一个 \ 来表示追加命令的结束和文本的开始。注意,文本内部的换行符(如果有的话)通常不需要转义,因为 sed 会理解文本直到遇到换行符为止。但是,由于 sed 命令通常在命令行中执行,你可能需要使用额外的转义字符来确保整个命令被正确解析。在这里,我们使用了两个 \\,第一个 \ 用于转义 a 命令后的换行符,第二个 \ 用于在命令行中转义实际的反斜杠字符。
New line at end: 是要追加的文本。
sed '/keyword/d' filename.txt
/keyword/: 这是一个模式匹配表达式,用于匹配包含 keyword 字符串的行。
d: 是一个删除命令,表示删除匹配到的行。
filename.txt: 是要应用 sed 命令的文件的名称。
sed -n '/keyword/p' filename.txt
-n: 这是一个选项,它告诉 sed 不要打印模式空间中的内容(即默认情况下不打印任何内容)。这通常与 p 命令一起使用,以仅打印匹配的行。
/keyword/: 这是一个模式匹配表达式,用于匹配包含 keyword 字符串的行。
p: 这是一个打印命令,表示打印匹配到的行。由于前面使用了 -n 选项,所以只有匹配到的行才会被打印出来。
sed '/^$/d' filename.txt
/^$/: 这是一个模式匹配表达式,用于匹配空行。^ 表示行的开头,$ 表示行的结尾,因此 ^$ 就表示一个没有任何字符的行,即空行。
d: 这是一个删除命令,表示删除匹配到的行。
filename.txt: 是要应用 sed 命令的文件的名称。