我有一个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列。