文本四剑客其四sed指令

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 命令的文件的名称。

  • 15
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值