使用来自txt文件的sed / awk将字符串存储到变量中

时间:2017-01-16 10:28:42

标签: shell awk sed

您好我有以下文字文件= id.txt

xid: indv1000 id: indv12482
xid: SC25986 id: artf220747
xid: 1000 id: tracker4164
xid: indn1001 id: indn1028
xid: proj1234 id: proj12045

我需要从上面的文件中获取“proj12045”并将其存储到变量中。这将针对多个文本文件完成,projID可以在任何行中

这是否可以使用sed / awk

2 个答案:

答案 0 :(得分:0)

这是第二次尝试:

awk 'match($0,/proj[0-9]{5}/){ x = substr($0,RSTART,RLENGTH) }END{ print x }'

这次你的输入是使用匹配函数筛选的,匹配函数在每行搜索字符串" proj"接着是五封信。如果匹配发生,则substr函数仅删除匹配并将其分配给变量x。程序结束后打印x。如果proj并不总是搜索到的字符串,则必须将正则表达式调整为该字符串。

答案 1 :(得分:0)

使用sed:

sed -n '/proj[0-9]*/s/.* id: //p' id.txt