我只想貼上終端內的第三列資料。
我最初有類似的東西:
4 SF0086 SF0086
12 SF0087 SF0087
17 TSF141 TSF141
29 TSF070 TSF070
30 TSF028 TSF028
31 TSF122 TSF122
我將其複製並貼上到終端中,它變成一行
4 SF0086 SF0086 12 SF0087 SF0087 17 TSF141 TSF141 29 TSF070 TSF070 30 TSF028 TSF028 31 TSF122 TSF122
我想得到它像:
SF0086
SF0087
TSF141
TSF070
TSF028
TSF122
我可以將一行(中間)選項儲存為一個文件,然後使用類似awk
,sed
或perl
或通用 POSIX 系統中可用的任何選項,但還沒有弄清楚。我對這個命令也沒有運氣paste
,我得出的結論paste
是無法為我做到這一點。每次我需要提取第三列時,資料都會發生變化(意味著間距會發生變化)。有資料擷取器/格式化大師嗎?
答案1
'cut' 是您正在尋找的指令。您指定要使用的分隔符號(我相信空格是預設值)以及您想要的列。手冊頁將列出所有詳細資訊。
您必須確保貼上時其換行符完好無損,才能正常運作。
答案2
對我來說最有效的方法是,因為我總是有重複項,編號(-f 字段)總是會改變,而且我的列表可能有數百個字段長,但事實cut
證明這並不是一個有效的選擇。
這就是我想要的結果:
sed -e 's/\s\+/\n/g' data.txt > data_cr.txt && sort data_cr.txt | uniq -d > final.txt
在哪裡:
sed -e 's/\s\+/\n/g' data.txt > data_cr.txt
強制所有文字(以空格分隔)獨佔一行,並將其寫入新檔案 data_cr.txt...並且
sort data_cr.txt | uniq -d > final.txt
逐行取得資料並僅列印任何重複項的單一副本。