我正在学习sed。一切似乎都很顺利,直到我遇到 N(接下来是多行)。我创建了这个文件 (guide.txt) 用于练习/理解/上下文目的。这是所述文件的内容...
This guide is meant to walk you through a day as a Network
Administrator. By the end, hopefully you will be better
equipped to perform your duties as a Network Administrator
and maybe even enjoy being a Network Administrator that much more.
Network Administrator
Network Administrator
I'm a Network Administrator
Run Code Online (Sandbox Code Playgroud)
所以我的目标是用“系统用户”替换“网络管理员”的所有实例。因为“网络管理员”的第一个实例由换行符 (\n) 分隔,我需要多行下一个运算符 (N) 来附加以“管理员”开头的行,前一行以“网络\n”结尾. 没问题。但我也想捕获所有其他“网络管理员”单行实例。
从我的研究中,我了解到我需要两个替换命令;一个用于换行符分隔的字符串,另一个用于其他字符串。此外,由于最后一行包含替换匹配和多行,因此发生了一些 jive。所以我制作这个...
$ sed '
> s/Network Administrator/System User/
> N
> s/Network\nAdministrator/System\nUser/
> ' guide.txt
Run Code Online (Sandbox Code Playgroud)
这将返回这些结果...
This guide is …
Run Code Online (Sandbox Code Playgroud) 除了明显的语法点b
可以接受标签而不能接受标签n
,并且要在b
没有标签的情况下使用,您需要将其放置在传递的参数的末尾-e
(至少对于单行程序)...ab
没有label 和 ann
似乎做同样的事情。
这真的是真的,还是有我没有注意到的细微差别?他们在什么条件下做同样的事情,在什么条件下他们不做?
我有两个文件,一个是另一个的超集。我想从较大的文件中删除较小文件中的相同行。
一种可能的复杂情况是这些行包含反斜杠。
我该怎么做呢?
我们有以下示例文件:
tcpmux 1/tcp # TCP port service multiplexer
tcpmux 1/udp # TCP port service multiplexer
rje 5/tcp # Remote Job Entry
rje 5/udp # Remote Job Entry
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users
systat 11/udp users
daytime 13/tcp
daytime 13/udp
qotd 17/tcp quote
qotd 17/udp quote
msp 18/tcp # Message send protocol (historic)
msp 18/udp # Message send protocol (historic)
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
Run Code Online (Sandbox Code Playgroud)
我们如何将以下几行附加到文件的开头?
# The …
Run Code Online (Sandbox Code Playgroud) 处理由几个 CSV 的串联产生的 csv,我正在寻找删除标题行重复的可能性(存在于每个串联的 CSV 中,它们之间是相同的)。这是我的 CSV 包含重复的第一行:
ID(Prot), ID(lig), ID(cluster), dG(rescored), dG(before), POP(before)
1000, lig40, 1, 0.805136, -5.5200, 79
1000, lig868, 1, 0.933209, -5.6100, 42
1000, lig278, 1, 0.933689, -5.7600, 40
1000, lig619, 3, 0.946354, -7.6100, 20
1000, lig211, 1, 0.960048, -5.2800, 39
1000, lig40, 2, 0.971051, -4.9900, 40
1000, lig868, 3, 0.986384, -5.5000, 29
1000, lig12, 3, 0.988506, -6.7100, 16
1000, lig800, 16, 0.995574, -4.5300, 40
1000, lig800, 1, 0.999935, -5.7900, 22
1000, lig619, 1, 1.00876, -7.9000, 3 …
Run Code Online (Sandbox Code Playgroud)