我几乎没有使用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
发布于 2013-07-09 16:59:03
是的,代码会像预期的那样工作。
当命令以...-f1-3 >> db_to_rs结束时,它实际上将所有输出附加到文件db_to_rs。
声明... >> db_to_rs_$chr将创建以{1 .. 22}结尾的文件名。
但是,请注意,声明>>会将输出附加到一个文件。因此,如果db_to_rs1已经存在,则输出将被追加。如果您想创建一个新文件,请不要使用>>,而使用>。
https://stackoverflow.com/questions/17543961
复制相似问题