基于字符串中特定位置的命中使用 awk 进行提取
Extraction with awk based on position-specific hit in a string
我有一个大的 txt 文件,看起来像这样(制表符分隔):
147 186741 2S74M -162
147 647172 1S75M -221
163 584665 74M2S 271
147 658416 5S65M6S -272
我希望 awk
查看第 3 列,并在它在第 2 或第 3 个位置遇到字符 "S" 时提取整行。或者,丢弃字符 "S" 位于该字符串最后位置的所有行。
提前谢谢你,
TP
awk ' ~ /S$/ {next} ~ /^..?S/' file
第一部分跳过 S 是第三个字段的最后一个字符的行。
下一部分打印当 S 是第二个或第三个字符时的行。
短awk方法:
awk '~/^.(S|.S).*[^S]$/' file
输出:
147 186741 2S74M -162
147 647172 1S75M -221
您只需要:
awk ' !~ /S$/' file
我有一个大的 txt 文件,看起来像这样(制表符分隔):
147 186741 2S74M -162
147 647172 1S75M -221
163 584665 74M2S 271
147 658416 5S65M6S -272
我希望 awk
查看第 3 列,并在它在第 2 或第 3 个位置遇到字符 "S" 时提取整行。或者,丢弃字符 "S" 位于该字符串最后位置的所有行。
提前谢谢你, TP
awk ' ~ /S$/ {next} ~ /^..?S/' file
第一部分跳过 S 是第三个字段的最后一个字符的行。
下一部分打印当 S 是第二个或第三个字符时的行。
短awk方法:
awk '~/^.(S|.S).*[^S]$/' file
输出:
147 186741 2S74M -162
147 647172 1S75M -221
您只需要:
awk ' !~ /S$/' file