一个输入文件list_c,看起来像:
00000981.ffid 00000982.ffid
00000982.ffid 00000983.ffid
00000983.ffid 00000984.ffid
00000984.ffid 00000985.ffid
00000985.ffid 00000986.ffid
00000986.ffid 00000987.ffid
00000987.ffid 00000988.ffid
00000988.ffid 00000989.ffid
00000989.ffid 00000990.ffid
00000990.ffid 00000991.ffid
00000991.ffid 00000992.ffid
00000992.ffid 00000993.ffid
00000993.ffid 00000994.ffid
00000994.ffid 00000995.ffid
00000995.ffid 00000996.ffid
00000996.ffid 00000997.ffid
00000997.ffid 00000998.ffid
00000998.ffid 00000999.ffid
00000999.ffid 00001000.ffid
00001000.ffid 00001001.ffid
00001001.ffid 00001002.ffid
00001002.ffid 00001003.ffid
00001003.ffid 00001004.ffid
00001004.ffid 00001005.ffid
00001005.ffid 00001006.ffid
00001006.ffid 00001007.ffid
00001007.ffid
我想将这两列分成两个单独的变量,并在循环中使用它们来生成两个输出文件。
我正在使用这段代码:
for filename in $(cat /d/home/adira0151/Desktop/tmp/list_c)
do
echo "$filename" | awk '{print $1}' >> /d/home/adira0151/Desktop/tmp/C_ffid
echo "$filename" | awk '{print $2}' >> /d/home/adira0151/Desktop/tmp/N_ffid
done
但我得到的是C_ffid:
00000981.ffid
00000982.ffid
00000982.ffid
00000983.ffid
00000983.ffid
00000984.ffid
00000984.ffid
00000985.ffid
00000985.ffid
00000986.ffid
00000986.ffid
00000987.ffid
00000987.ffid
00000988.ffid
00000988.ffid
00000989.ffid
00000989.ffid
00000990.ffid
00000990.ffid
00000991.ffid
00000991.ffid
00000992.ffid
00000992.ffid
00000993.ffid
00000993.ffid
00000994.ffid
00000994.ffid
00000995.ffid
00000995.ffid
00000996.ffid
00000996.ffid
00000997.ffid
00000997.ffid
00000998.ffid
00000998.ffid
00000999.ffid
00000999.ffid
00001000.ffid
00001000.ffid
00001001.ffid
00001001.ffid
00001002.ffid
00001002.ffid
00001003.ffid
00001003.ffid
00001004.ffid
00001004.ffid
00001005.ffid
00001005.ffid
00001006.ffid
00001006.ffid
00001007.ffid
00001007.ffid
而另一个文件 N_ffid 是空白的。
请帮忙。
最佳答案
将第 1 列和第 2 列写入单独的文件:
awk '{print $1>"/path/to/C_ffid"; print $2>"/path/to/N_ffid"}' list_c
工作原理
打印 $1>"/path/to/C_ffid"
此命令将第一列写入文件
/path/to/C_ffid
。打印 $2>"/path/to/N_ffid"
此命令将第二列写入文件
/path/to/N_ffid
。
示例输出
对于您的输入文件,将创建以下两个输出文件:
$ cat C_ffid
00000981.ffid
00000982.ffid
00000983.ffid
00000984.ffid
00000985.ffid
00000986.ffid
00000987.ffid
00000988.ffid
00000989.ffid
00000990.ffid
00000991.ffid
00000992.ffid
00000993.ffid
00000994.ffid
00000995.ffid
00000996.ffid
00000997.ffid
00000998.ffid
00000999.ffid
00001000.ffid
00001001.ffid
00001002.ffid
00001003.ffid
00001004.ffid
00001005.ffid
00001006.ffid
00001007.ffid
和:
$ cat N_ffid
00000982.ffid
00000983.ffid
00000984.ffid
00000985.ffid
00000986.ffid
00000987.ffid
00000988.ffid
00000989.ffid
00000990.ffid
00000991.ffid
00000992.ffid
00000993.ffid
00000994.ffid
00000995.ffid
00000996.ffid
00000997.ffid
00000998.ffid
00000999.ffid
00001000.ffid
00001001.ffid
00001002.ffid
00001003.ffid
00001004.ffid
00001005.ffid
00001006.ffid
00001007.ffid
shell 中的循环和处理
while read one two
do
echo "$one">>C_ffid
echo "$two">>N_ffid
echo "Processing $one and $two"
done <list_c
关于linux - 在for循环中将一个文件中的两列分隔为两个单独的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37359822/