Nit*_*esh 4 linux bash shell awk
我有一个以下格式的数据文件
1|col2|col3|105,230,3,44,59,62|col5
2|col2|col3|43,44|col5
3|col2|col3|1,2,3,4,5,6,7,8|col5
4|col2|col3|1,2,37|col5
Run Code Online (Sandbox Code Playgroud)
因此,从上面给出的数据的理想记录是
1|col2|col3|105,230,3,44,59,62|col5
3|col2|col3|1,2,3,4,5,6,7,8|col5
Run Code Online (Sandbox Code Playgroud)
我目前正在使用以下命令,但我正在寻找一个更高效/有组织的命令
awk -F"|" '$4 ~ /,3,/ || $4 ~ /^3,/ || $4 ~ /,3$/'
Run Code Online (Sandbox Code Playgroud)
简短的GNU awk解决方案:
awk -F'|' '$4 ~ /\<3\>/' file
Run Code Online (Sandbox Code Playgroud)
\<和\>-代表的开始和结束的的字分别输出:
1|col2|col3|105,230,3,44,59,62|col5
3|col2|col3|1,2,3,4,5,6,7,8|col5
Run Code Online (Sandbox Code Playgroud)
或者更统一/便携的:
awk -F'|' '$4 ~ /(^|,)3(,|$)/' file
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
69 次 |
| 最近记录: |