Text-Processing

如何使用字元串分隔符從文件中選擇特定列

  • September 9, 2019

我有一個文件,其中的列由字元串分隔。例如:

one<xx>two<xx>three<xx>four<xx>five<xx>six
one11<xx>two11<xx>three11<xx>four11<xx>five11<xx>six11

我想提取特定列的文本,例如第 1、3 和 5 列。所以輸出應該是:

one<xx>three<xx>five
one11<xx>three11<xx>five11

這該怎麼做?awk例如使用命令?

將輸入欄位分隔符 ( FS) 和輸出欄位分隔符 ( OFS) 設置為<xx>

awk 'BEGIN{FS=OFS="<xx>"} {print $1,$2,$5}' file

輸出:

one<xx>two<xx>five
one11<xx>two11<xx>five11

請參閱:8 個強大的 Awk 內置變數——FS、OFS、RS、ORS、NR、NF、FILENAME、FNR

$ perl -F'<xxx>' -pale ' $"="<xxx>";$_ = "@F[1,3,5]"' file

將欄位分隔符設置為所需的字元串,然後收集欄位的索引,將它們與 $" 中的字元串連接起來並儲存為目前記錄。-p 將自動列印。

引用自:https://unix.stackexchange.com/questions/539671