我在bash中有这个脚本,希望在不同的文本文件上执行它,然后将这些修改保存在具有相同名称的文件上。
这是脚本:
#!/bin/bash
awk '{if (d) d=d RS $0; else d=$0}
/>/{s++;next}
s==1 && /[ACGT]/{gsub(/[^ACGT]+/, ""); n+=length($0)}
END{print s, n, "1" RS d}' < mytextfiles_*.txt > mytexfiles_withmodifications_*.txt
提前致谢。
答案 0 :(得分:1)
像这样,但先备份!
#!/bin/bash
for i in *.txt
do
echo Processing ${i}
awk .... "${i}" > $$.tmp && mv $$.tmp "${i}"
done
您可能想要选择“* .txt”以外的选项。把你自己的awk东西放在我有“......”的地方
说明: 它遍历当前目录中的所有“txt”文件。它在每个上运行awk命令并将输出保存在临时文件中(使用ProcessId.tmp形成的名称)。如果awk成功,它将重命名临时文件与原始文件相同 - 从而覆盖它。请注意,不会保留权限。