2010-04-14 43 views
5

我有一個txt文件,其中包含由製表符分隔的列,並基於該文件,我想創建一個僅包含某些列信息的新文件。如何打印由選項卡分隔的選定列?

這是我現在有:

awk '{ print $1, $5 }' filename > newfilename 

不同在於工作時第5列包含空格e.g 123 Street,只有123顯示出來並在街上被認爲是另一列。

我該如何實現我想要做的?

回答

4

可以指定field separator製表:

awk 'BEGIN { FS = "\t" } ; { print $1, $5 }' filename > newfilename 

或者from the command line這樣的:

awk -F"\t" '{ print $1, $5 }' filename > newfilename 
1

什麼簡單削減殼COMAND?

很簡單但做這項工作

cut -d "\t" -f 1,5 filename > newfilename 
0

您可以使用下列方式猛砸語法:

while IFS=$'\t' read -a cols; do 
    printf "%s\t%s\n" "${cols[0]}" "${cols[4]}"; 
done <in.txt> newfile.txt 

,這將節省由製表符分隔成新的文件1和第5列。

相關問題