我有一個txt文件,其中包含由製表符分隔的列,並基於該文件,我想創建一個僅包含某些列信息的新文件。如何打印由選項卡分隔的選定列?
這是我現在有:
awk '{ print $1, $5 }' filename > newfilename
不同在於工作時第5列包含空格e.g 123 Street
,只有123
顯示出來並在街上被認爲是另一列。
我該如何實現我想要做的?
我有一個txt文件,其中包含由製表符分隔的列,並基於該文件,我想創建一個僅包含某些列信息的新文件。如何打印由選項卡分隔的選定列?
這是我現在有:
awk '{ print $1, $5 }' filename > newfilename
不同在於工作時第5列包含空格e.g 123 Street
,只有123
顯示出來並在街上被認爲是另一列。
我該如何實現我想要做的?
可以指定field separator製表:
awk 'BEGIN { FS = "\t" } ; { print $1, $5 }' filename > newfilename
或者from the command line這樣的:
awk -F"\t" '{ print $1, $5 }' filename > newfilename
什麼簡單削減殼COMAND?
很簡單但做這項工作
cut -d "\t" -f 1,5 filename > newfilename
您可以使用下列方式猛砸語法:
while IFS=$'\t' read -a cols; do
printf "%s\t%s\n" "${cols[0]}" "${cols[4]}";
done <in.txt> newfile.txt
,這將節省由製表符分隔成新的文件1和第5列。