如果和使用条件的awk -F没有找到字符串 [英] awk -F not finding strings if AND condition is used

查看:161
本文介绍了如果和使用条件的awk -F没有找到字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

  A =你好,我有一个CREATE TABLE设置为(UID,CID,MID)

上面的字符串可能因为它需要只要继续。

 回声$ A| awk的-F/制作/&放大器;&安培; / TABLE /'{打印$ 2}'


  

返回什么...


这应该返回:


  

为(UID,CID,MID)



解决方案

试试这个:

 回声$ A| awk的-F创建。* TABLE'{打印$ 2}'
 如(UID,CID,MID)

不知道正则表达式中的字段分隔符做的工作。


使用可变字段分隔符:

 九月=两个
回声_one_two_three_four| AWK -v VAR = $九月'{拆分($ 0,A,_VAR);打印[2]}
_三四

 九月=三个
回声_one_two_three_four| AWK -v VAR = $九月'{拆分($ 0,A,_VAR);打印[2]}
_四

I need to print second part of the searched string

a="Hello I have a CREATE set TABLE as (uid, cid, mid)"

Above string may continue as long as it needs.

echo "$a" | awk -F"/CREATE/&&/TABLE/" '{print $2}'

it returns nothing...

It should return:

as (uid, cid,mid)

解决方案

Try this:

echo "$a" | awk -F"CREATE.*TABLE" '{print $2}'
 as (uid, cid, mid)

Not sure if regex in Field Separator do work.


Using variable Field Separators:

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

这篇关于如果和使用条件的awk -F没有找到字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆