file2.txt
我有一个名为19 列数据的文本文件。我想一次复制 2 列,例如 C2 和 C3、C2 和 C4、C2 和 C5、...、C2 和 C19 到 17 个不同的文本文件中。我需要每个文本文件中的 C2 列作为通用数据,我尝试使用 for 循环来实现:
awk 'BEGIN { for (i = 2; i <= 19; i++) -v i="$i" '{print $2 $i}'file2.txt > filei.txt}'
但我收到这些错误:
awk: BEGIN { for (i = 3; i <= 18; i++) -v i="$i" {print
awk: ^ syntax error
awk: Commnadline:1: BEGIN { for (i = 3; i <= 18; i++) -v i="$i" {print
awk: unexpected newline or end of string
你能帮忙吗?
答案1
尝试
awk '{for (i=2;i<=NF;i++) print $1,$i > "file" i ".txt"}' file.txt
答案2
测试并运行良好
file data
c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19
co=`awk '{print $2}' filename `
no_of_colums=`awk '{print NF}' filename`
for ((i=3;i<=$no_of_colums;i++)); do awk -v i="$i" -v co="$co" '{print co,$i}' filename>$co"c"$i ; done