我有一个问题,在一个作业中,我必须打开一个文件,并使用 sed
命令来改变一些东西,然后把输出放到一个新的文件中。更改部分不是最难的,但将输出结果写入新文件才是问题所在。假设我的起始文件叫 ABC1d.gb
而输出文件必须调用 abc1d.gb
,当我尝试这个与 >
或 >>
它将或覆盖开头的文件并清空它,或者它将把输出附加到 ABC1d.gb
文件。所以,我想知道,如果我可以甚至使一个文件 abc1d.gb
如果可以的话,我也可以把它应用到我的作业中吗?
先谢谢你
我的代码行,我现在使用的是。
cat ABC1d.gb | sed 's/ABC/abc/g' > abc1d.gb
EDITUPDATE:问题出在我的系统上, 我通过windowscommands把我工作的文件夹变成了大小写敏感的, 现在它就像它应该的那样. 问题不在于代码,而在于系统文件夹...。
你的命令只有在以下情况下才会有问题 ABC1d.gb
和 abc1d.gb
是同一个文件,如果你使用的是不区分大小写的文件系统,就会发生这种情况。
解决的办法是写入一个临时文件,然后重新命名它。
sed 's/ABC/abc/g' ABC1d.gb > abc1d.temp
mv abc1d.temp abc1d.gb