[英]Unix AWK character searching
如果我有一個類似於以下內容的文本文件:
chrY 14612243 1/1 8/8 0 12 DYS389I 4
chrY 14612243 1/1 8/8 0 12 DYS389I 4
chrY 14612243 1/1 8/8 0 29 DYS389B.2 4
chrY 14612243 1/1 8/8 0 29 DYS389B.2 4
chrY 7730432 1/1 -3/-3 0 20 DYS520 4
chrY 7730432 1/1 -3/-3 0 20 DYS520 4
我將如何編寫awk命令來幫助我提取第四列並在'/'處拆分,使我得到8 8或-3 -3
我試着做
awk -F "/" '{print $3 " " $4}'
但是它一直在打印錯誤的列。
試試下面的awk命令,
$ awk '{split($4,a,"/"); print a[1],a[2]}' file
8 8
8 8
8 8
8 8
-3 -3
-3 -3
它使用定界符/
分割第四列,並將其存儲到數組中。 a[1]
表示第一個分割值,而a[2]
表示第二個值。
另一種方法是使用space
和/
作為字段分隔符:
awk -F '[ \t/]*' '{ print $5, $6 }' file
輸出:
8 8
8 8
8 8
8 8
-3 -3
-3 -3
另一種選擇:
awk '{sub("/", " ", $4); print $4}' file
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.