我设法提取以下响应并将其用逗号分隔。这是逗号分隔的字符串,我只对account_id的逗号分隔值感兴趣。如何使用sed
模式匹配?
输入:ACCOUNT_ID,711111111119,ENVIRONMENT,dev,ACCOUNT_ID,111111111115,dev
预期的输出:711111111119, 111111111115
我的$input
变量存储输入
我尝试了下面的方法,但是它把所有数字都加入了,我想保留逗号','
echo $input | sed -e "s/[^0-9]//g"
答案 0 :(得分:3)
我认为您最好与awk
一起使用:
awk -v FS=, '{for(i=1;i<=NF;i++)if($i~/[0-9]/){printf sep $i;sep=","}}'
如果您真的想sed
,可以参加
sed -e "s/[^0-9]/,/g" -e "s/,,*/,/g" -e "s/^,\|,$//g"
答案 1 :(得分:1)
$ awk '
BEGIN {
FS = OFS = ","
}
{
c = 0
for (i = 1; i <= NF; i++) {
if ($i == "ACCOUNT_ID") {
printf "%s%s", (c++ ? OFS : ""), $(i + 1)
}
}
print ""
}' file
711111111119,111111111115