gpt4 book ai didi

linux - 了解 sed

转载 作者:太空宇宙 更新时间:2023-11-04 09:37:15 25 4
gpt4 key购买 nike

我正在尝试了解如何

sed 's/\^\[/\o33/g;s/\[1G\[/\[27G\[/' /var/log/boot

有效以及这些片段的含义。我阅读的手册页让我更加困惑,我尝试了 sai Id 中的信息,但不知道如何使用它!我对 Linux 很陌生。 Debian 是我的第一个发行版,但似乎是一个相当合乎逻辑的起点,因为它是许多其他发行版的根源,并且已经存在了一段时间,所以可能做得很好并且相当标准化。如果需要,我正在运行 Wheezy 64 位作为引用。

最佳答案

sed command 是一个流编辑器,读取其文件(或 STDIN)作为输入,将命令应用于输入,并将结果(如果有)呈现给输出 (STDOUT)。

sed 的一般语法是

sed [OPTIONS] COMMAND FILE

在你给出的 shell 命令中:

sed 's/\^\[/\o33/g;s/\[1G\[/\[27G\[/' /var/log/boot

sed命令是 s/\^\[/\o33/g;s/\[1G\[/\[27G\[/'/var/log/boot是文件。

给定sed命令实际上是两个独立的命令:

  1. s/\^\[/\o33/g

  2. s/\[1G\[/\[27G\[/

#1 的意图,s (替换)命令,用于替换所有出现的 '^['八进制值为 033 (ESC 字符)。但是,这个sed有一个错误命令。转义八进制代码的正确 bash 语法是 \nnn ,所以这个的正确方法 sed编写的命令是:

s/\^\[/\033/g

注意尾随 g在替换字符串之后?意思是执行全局替换;没有它,只有第一次出现会被改变。

#2 的目的是替换所有出现的字符串 \[1G\[\[27G\[ .然而,这个命令也有一个错误:尾随 g需要进行全局替换。所以,第二个命令需要这样写:

s/\[1G\[/\[27G\[/g

最后,将所有这些放在一起,两个 sed命令应用于 /var/log/boot 的内容文件,其中输出出现了所有 ^[转换成\033 , 和字符串 \[1G\[已转换为 \[27G\[ .

关于linux - 了解 sed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25254216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com