我需要打印搜索到的字符串的第二部分
a="Hello I have a CREATE set TABLE as (uid, cid, mid)"
以上字符串可以根据需要继续。
echo "$a" | awk -F"/CREATE/&&/TABLE/" '{print $2}'
it returns nothing...
它应该返回:
as (uid, cid,mid)
最佳答案
试试这个:
echo "$a" | awk -F"CREATE.*TABLE" '{print $2}'
as (uid, cid, mid)
不确定字段分隔符中的正则表达式是否有效。
使用可变字段分隔符:
sep=two
echo "_one_two_three_four" | awk -v var=$sep '{split($0,a,"_"var);print a[2]}'
_three_four
sep=three
echo "_one_two_three_four" | awk -v var=$sep '{split($0,a,"_"var);print a[2]}'
_four
关于linux - 如果使用 AND 条件,awk -F 找不到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22381403/