如何在Bash中筛选文本文件第二列以117开头的行?
如何在Bash中筛选第二列以117开头的行?
要精准匹配第二列以117开头的行,你可以用以下两种常用方法:
方法一:awk(推荐)
awk对列数据的处理天生友好,直接指定第二列的匹配规则即可:
awk '$2 ~ /^117/' test.txt
$2代表文件中的第二列~ /^117/表示匹配以117开头的内容,符合条件的行会被直接输出
如果你的列分隔符不是默认的空格/制表符,比如逗号,可以用-F指定分隔符:
awk -F ',' '$2 ~ /^117/' test.txt
方法二:grep
如果想用grep实现,需要通过正则精准定位第二列的位置:
grep -E '^[^[:space:]]+[[:space:]]+117' test.txt
^匹配行开头[^[:space:]]+匹配第一列的非空白内容[[:space:]]+匹配列之间的空白分隔符117确保第二列以它开头
如果列分隔符是特定字符(比如冒号),把[[:space:]]+换成对应字符即可:
grep -E '^[^:]+:117' test.txt
内容的提问来源于stack exchange,提问作者Achal Neupane
相关产品推荐
相关产品推荐

