数据集是一个包含三列的大文件:一个部分的ID,一些不相关的内容和一行文本.示例可能如下所示:
A01 001 This is a simple test.
A01 002 Just for exemplary purpose.
A01 003
A02 001 This is another text
我想使用第一列(在此示例中为A01和A02,表示不同的文本)作为文件名,其内容是第二列之后该行中的所有内容.
上面的示例应该会生成两个文件,一个包含名称A01和内容:
This is a simple test.
Just for exemplary purpose.
另一个A02内容如下:
This is another text
我的问题是:
awk适合这类任务.如果你不介意有一些前导空格,你可以使用:
awk '{f=$1; $1=$2=""; print > f}' file
这将清空第一个和第二个字段,然后将所有行打印到f文件中,该文件先前存储为第一个字段.
如果这些空间很烦,你可以用sub("  ", "")以下方法删除它们:
awk '{f=$1; $1=$2=""; sub("  ", ""); print > f}' file