我有一个制表符分隔文件,file.txt其内容如下:
word11 word12 word13 word14
word21 word22 word23 word24
word31 word32 word33 word34
word41 word42 word43 word44
Run Code Online (Sandbox Code Playgroud)
我想将每个列复制到不同的文件中.例如:第一个文件将包含:
word11
word21
word31
word41
Run Code Online (Sandbox Code Playgroud)
第二个文件将包含:
word12
word22
word32
word42
Run Code Online (Sandbox Code Playgroud)
我写了相同的脚本(有12列):
for i in {1..12}
do
awk -F "\t" '{print $i}' file.txt > /tmp/output-$i.txt
done
Run Code Online (Sandbox Code Playgroud)
但是所有输出文件都包含所有数据:
word11 word12 word13 word14
word21 word22 word23 word24
word31 word32 word33 word34
word41 word42 word43 word44
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助.
您正在尝试使用shell变量,Awk这将永远不会工作.但是你要做的事情Awk本身就可以完成.for循环NF将解析您的所有列,您不再需要对其进行硬编码.
awk -v FS="\t" '{for (i=1;i<=NF;i++) print $i > ("/tmp/output-"i);}' file.txt
Run Code Online (Sandbox Code Playgroud)