gpt4 book ai didi

linux - 使用 bash 在文件中的模式后插入一行

转载 作者:太空狗 更新时间:2023-10-29 11:35:49 25 4
gpt4 key购买 nike

我有一个如下所示的文件 abc.txt:

#%PAM-1.0
# Test file
# Hello World
#
# echo "Test"
/etc/init.d/xrdp start

# Comment again
echo "Hello again"

我想在注释后插入一行作为第一个可执行行...所以如果我想在所有以#开头的行之后添加一行echo "Batman",我该如何实现那个?

输出应该如下所示:

#%PAM-1.0
# Test file
# Hello World
#
# echo "Test"
echo "Hello Batman"
/etc/init.d/xrdp start

# Comment again
echo "Hello again"

请注意,该行不会添加到其他注释行之后 # Comment Again

我在下面尝试过,但它不起作用。我对 Bash 脚本编写还很陌生,因此需要这里专家的帮助。

sed -i '#/a "echo "Batman"' abc.txt

感谢您的帮助!

最佳答案

只需使用一个标志来跟踪此行的打印时间:

awk '!/^#/ && !f{print "Hello Batman";f=1}1' file

即:当一行不是以# 开头并且这是第一次发生时,打印所需的行。然后,设置标志,这样就不会再发生这种情况。

最后,1 触发输出当前行的 print

关于linux - 使用 bash 在文件中的模式后插入一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40876650/

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