在这个答案中,
awk '$2=="no"{$3="N/A"}1' file
Run Code Online (Sandbox Code Playgroud)
被接受了.请注意1
AWK脚本的末尾.在评论中,答案的作者说
[1]是显示当前行的神秘方式.
我很困惑.这是如何运作的?
如果有人可以提供帮助,我正在尝试使用正则表达式和捕获组进行sed追加,但操作不完全:
echo "#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/" | sed -re '/#baseurl=http:\/\/mirror.centos.org(.*)/a baseurl=https:\/\/10.10.10.10\ \1'
#baseurl=http://mirror.centos.org/centos//contrib//
baseurl=https://10.10.10.10 1
Run Code Online (Sandbox Code Playgroud)
目前,它只是给文字值1而不是捕获组。
它应该给出:
#baseurl=http://mirror.centos.org/centos//contrib//
baseurl=https://10.10.10.10/centos//contrib//
Run Code Online (Sandbox Code Playgroud)
我也尝试过反斜杠括号,但它不起作用。请协助...。因为它现在伤了我的头...
我想在php文件中'maildomain'
的行后追加port
.我真的想要使用这个解决方案,因为这似乎是最干净,非常清楚,所以我做了
sed -i "350,/port/a \'maildomain\'" file.php
Run Code Online (Sandbox Code Playgroud)
但它出来是这样的:
351 : 'maildomain'
352 :
353 : 'maildomain'
354 :
...
358 : blablabla port blabla
359 : 'maildomain'
Run Code Online (Sandbox Code Playgroud)
如您所见,它'maildomain'
从第350行交替添加,直到找到port
它最初位于第354行.如何修改上面的sed命令只是添加'maildomain'
之后port
而不是之前添加?谢谢.
另外,当使用353而不是350时,它给了我:
353 : 'maildomain'
354 : balsdbflasdbflsd port blablablabla
355 : 'maildomain'
Run Code Online (Sandbox Code Playgroud)
为什么?谢谢〜