linux - 如果使用 AND 条件,awk -F 找不到字符串

标签 linux shell unix awk solaris

我需要打印搜索到的字符串的第二部分

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/

相关文章:

linux - expr 给出语法错误

shell - 如何将shell命令行参数转义并将其存储到一个参数中?

c - C 套接字 sockaddr 和 sockaddr_storage 背后的推理

c - 访问内核 2.6+ 中的 sys_call_table

html - 如何让浏览器打开本地文件而不是下载?

linux - 将目录中尚未存在的所有文件移动到自命名目录中?

linux - 并行运行 bash shell 并等待

linux - 系统日志:进程特定的优先级

linux - 在 cygwin 下运行 Cronjob

linux - 在 Linux 上使用 SslStream 进行身份验证时 RemoteCertificateNameMismatch