Awk 用字母数字搜索图案并打印线条
我有格式的数据Awk 用字母数字搜索图案并打印线条,awk,Awk,我有格式的数据 A ((!(A1+A2))) B (A1A2) C (A1+A2) D (!(A1+A2)B1) E (!A1+!A2) F (!(!A1!A2)+A3+A4) G ((A1!A2)B1) 我希望输出为 E (!A1+!A2) F (!(!A1!A2)+A3+A4) G ((A1!A2)B1) 我想得到那行有仅使用字母数字 我曾经 awk -F' ' '$2 ~ /\!/' file 这也 awk '$2'~/^[(!)_[:alnum:]]+[(!)+
A ((!(A1+A2)))
B (A1A2)
C (A1+A2)
D (!(A1+A2)B1)
E (!A1+!A2)
F (!(!A1!A2)+A3+A4)
G ((A1!A2)B1)
我希望输出为
E (!A1+!A2)
F (!(!A1!A2)+A3+A4)
G ((A1!A2)B1)
我想得到那行有代码>仅使用字母数字
我曾经
awk -F' ' '$2 ~ /\!/' file
这也
awk '$2'~/^[(!)_[:alnum:]]+[(!)+_[:alnum:]]+$/' file
但是这里列出了所有包含的行代码>以及代码>也是字母数字。你可以要求一个起始(前导)单词边界(\我想我想我想得到的那一行只有!
字母数字的意思:不是!(
输出:
E (!A1+!A2)
F (!(!A1!A2)+A3+A4)
G ((A1!A2)B1)
E (!A1+!A2)
F (!(!A1!A2)+A3+A4)
G ((A1!A2)B1)
如果您的实际数据不是很紧,您可能需要进行一些空间检查,例如:/!*[^(]/
我想得到只有字母数字的!
行:
您只需使用此正则表达式匹配!
,后跟字母数字字符:
/![[:alnum:]/
awk命令:
awk'$2~/![:alnum:]/'文件
E(!A1+!A2)
F(!(!A1!A2)+A3+A4)
G((A1!A2)B1)
如果这还不是您所需要的全部,那么编辑您的问题,以更清楚地说明您的需求,并提供不适用于您的示例输入/输出。还有awk
:
awk '/![[:alpha:]]+/' file
E (!A1+!A2)
F (!(!A1!A2)+A3+A4)
G ((A1!A2)B1)
或
++先生,谢谢你分享干杯,这是一个很好的解决方案。
$ grep '![[:alpha:]]' file
E (!A1+!A2)
F (!(!A1!A2)+A3+A4)
G ((A1!A2)B1)
$ awk '/![[:alpha:]]/' file
E (!A1+!A2)
F (!(!A1!A2)+A3+A4)
G ((A1!A2)B1)
$ sed -n '/![[:alpha:]]/p' file
E (!A1+!A2)
F (!(!A1!A2)+A3+A4)
G ((A1!A2)B1)
awk '/![[:alpha:]]+/' file
E (!A1+!A2)
F (!(!A1!A2)+A3+A4)
G ((A1!A2)B1)
awk '/![[:alpha:]][[:digit:]]/' file
E (!A1+!A2)
F (!(!A1!A2)+A3+A4)
G ((A1!A2)B1)