我有一个txt文件,其中列由制表符分隔,并且基于该文件,我想创建一个仅包含某些列信息的新文件。
这就是我现在所拥有的:
awk '{ print $1, $5 }' filename > newfilename
除了当第5列包含空格(例如123 Street
)时,只显示123
并且街道被视为另一列,
我如何实现我想要做的事情?
答案 0 :(得分:4)
您可以将field separator指定为标签:
awk 'BEGIN { FS = "\t" } ; { print $1, $5 }' filename > newfilename
awk -F"\t" '{ print $1, $5 }' filename > newfilename
答案 1 :(得分:2)
简单的 cut shell命令怎么样?非常简单但是工作
cut -d "\t" -f 1,5 filename > newfilename
答案 2 :(得分:0)
您可以通过以下方式使用Bash语法:
while IFS=$'\t' read -a cols; do
printf "%s\t%s\n" "${cols[0]}" "${cols[4]}";
done < in.txt > newfile.txt
这会将由制表符分隔的第1列和第5列保存到新文件中。