gpt4 book ai didi

linux - 将字符串附加到每个以某些字符开头的匹配模式

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

我正在尝试使用 awk 或 sed 将字符串“_SOMETHING”附加到以“check_nrpe_aix”开头的文件中的每个现有字符串

之前:

define command {
command_name check_nrpe_aix_load
command_line $USER1$/check_nrpe -p $USER11$ -H $HOSTADDRESS$ -a $ARG1$ $ARG2$ ARG3$
}

define command {
command_name check_nrpe_aix_cpu_stats
command_line $USER1$/check_nrpe -p $USER11$ -H $HOSTADDRESS$ -a $ARG1$ $ARG2$
}

之后:

define command {
command_name check_nrpe_aix_load_SOMESTRING
command_line $USER1$/check_nrpe -p $USER11$ -H $HOSTADDRESS$ -a $ARG1$ $ARG2$ ARG3$
}

define command {
command_name check_nrpe_aix_cpu_stats_SOMESTRING
command_line $USER1$/check_nrpe -p $USER11$ -H $HOSTADDRESS$ -a $ARG1$ $ARG2$
}

最佳答案

我把你的例子放在一个名为 input.txt 的文件中

$ cat input.txt 
define command {
command_name check_nrpe_aix_load
command_line $USER1$/check_nrpe -p $USER11$ -H $HOSTADDRESS$ -a $ARG1$ $ARG2$ ARG3$
}

define command {
command_name check_nrpe_aix_cpu_stats
command_line $USER1$/check_nrpe -p $USER11$ -H $HOSTADDRESS$ -a $ARG1$ $ARG2$
}

现在如果你运行:

awk 'BEGIN {OFS=""} {if ($0 ~ /check_nrpe_aix/) print $0,"_SOMESTRING";else print $0}' input.txt

你应该得到你期望的结果:

$ awk 'BEGIN {OFS=""} {if ($0 ~ /check_nrpe_aix/) print $0,"_SOMESTRING";else print $0}' input.txt
define command {
command_name check_nrpe_aix_load_SOMESTRING
command_line $USER1$/check_nrpe -p $USER11$ -H $HOSTADDRESS$ -a $ARG1$ $ARG2$ ARG3$
}

define command {
command_name check_nrpe_aix_cpu_stats_SOMESTRING
command_line $USER1$/check_nrpe -p $USER11$ -H $HOSTADDRESS$ -a $ARG1$ $ARG2$
}

分解:

OSF 是输出字段分隔符。我将它设置为空,这样在将“_SOMESTRING”附加到该行时就不会添加空格

命令

if ($0 ~ /check_nrpe_aix/) print $0,"_SOMESTRING";

将搜索“check_nrpe_aix”表达式并打印整行($0)加上由 OSF 分隔的“_SOMESTRING”

命令 ;否则打印 $0}

如果不符合前一个命令的条件,将打印整行而不做任何改动

关于linux - 将字符串附加到每个以某些字符开头的匹配模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58257625/

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