簡體   English   中英

Unix AWK字符搜索

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM