我有一个这样的文件:
3 EOE
5 APPLE
6 NOBODY
我需要解析它并在第一列中将所有带有“3”的内容输出到 filename.3,将“4”输出到 filename.4,等等...从 unix 提示符
最佳答案
像这样的东西应该可以工作(我还没有测试过):
while read num rest; do
echo "$num $rest" >> "filename.$num"
done < inputFile
read
将读取一行文本,然后在空白处将其拆分为“单词”,就像您运行命令时一样。它会将第一个“单词”分配给第一个变量名(在本例中为 num
- 它将获取数字),第二个“单词”分配给第二个变量名(rest
), 等等。如果它用完了变量,它将把该行的剩余部分追加到最后一个变量(rest
,此处)。
当 read
成功处理一行时,它返回零,这在 shell 脚本中是“成功”,因此 while
循环将继续进行,读取后续行。当 read
到达文件末尾时,它将返回 1,停止 while
循环。
关于linux - 根据第一个字段对内容进行排序并将第二个字段输出到新文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3845567/