1

我几乎没有使用 cygwin 和 UNIX 的经验,但需要使用它从更大的文件集中提取大量数据......昨天我得到了一些帮助来完成这个简短的脚本,但是(在运行了 ~7 -8 小时)脚本简单地写入同一个输出文件 22 次。至少这就是我认为发生的事情。

我现在已将代码更改为此(见下文),但如果知道如何正确完成此操作的人可以在我浪费另外 8 小时之前告诉我它是否可能工作,那将是非常棒的......

for chr in {1..22}
do
zcat /cygdrive/g/data/really_long_filename$chr | sed '/^#/d' | cut -f1-3 >> db_to_rs_$chr
done

我希望它读取文件 1..22,删除以 # 开头的行,并将第 1 到 3 列发送到以相同数字 1..22 结尾的文件

昨天最后一部分只是...-f1-3 >> db_to_rs我怀疑只是重写了该文件 22 次?

非常感谢您的帮助~L

4

1 回答 1

2

是的,代码会按预期工作。

当命令结束时...-f1-3 >> db_to_rs,它实际上将所有输出附加到文件db_to_rs中。

... >> db_to_rs_$chr会创建以{1 .. 22}.

但是,请注意,saying>>会将输出附加到文件中。所以如果db_to_rs1已经存在,输出将被追加。如果您想创建一个文件,请说>而不是>>.

于 2013-07-09T08:59:03.287 回答