Bash 为什么sed将新文件作为备份文件而不是原始文件提供给我

Bash 为什么sed将新文件作为备份文件而不是原始文件提供给我,bash,awk,sed,backup,pipeline,Bash,Awk,Sed,Backup,Pipeline,仅在TM_文件夹中,我将命令放入执行 awk '{print $1}' ~/desktop/file/N-glyco-TM-common/baker.txt \ | xargs -n1 -I name sed -i.txt '/name/d' ~/desktop/file/TM_only/baker.txt 它所做的是从TM_only baker.txt中删除TM common baker.txt文件中的内容。代码没有问题,但是当它创建一个备份文件baker.txt.txt(或bak)时,它实

仅在TM_文件夹中,我将命令放入执行

awk '{print $1}' ~/desktop/file/N-glyco-TM-common/baker.txt \
| xargs -n1 -I name sed -i.txt '/name/d' ~/desktop/file/TM_only/baker.txt
它所做的是从TM_only baker.txt中删除TM common baker.txt文件中的内容。代码没有问题,但是当它创建一个备份文件baker.txt.txt(或bak)时,它实际上包含了新文件(删除行后)而不是原始文件


原始文件有1668行,而新的baker.txt有407行。然而,baker.txt.txt(BACKUP)也给出了407而不是1668

您的问题听起来像是测试中的错误导致的,您的
baker.txt
文件被修剪,而您没有注意到它,从而打乱了后续的测试。您是否在新的/干净的文件中尝试了
sed
部分?(它应该像你期望的那样工作)。祝你好运。另外,我不确定你是否使用了
-I name..'/名称/d
。通常用于
-I{}sed'/deleteTarget/d'{}
(以便
{}
保存由
xargs
处理的当前文件名)。祝你好运。你可以用
awk
sed
来处理整个问题,而不是使用管道。你的问题听起来像是测试中的一个错误导致的,你的
baker.txt
文件被修剪了,你没有注意到,从而打乱了后续的测试。您是否在新的/干净的文件中尝试了
sed
部分?(它应该像你期望的那样工作)。祝你好运。另外,我不确定你是否使用了
-I name..'/名称/d
。通常用于
-I{}sed'/deleteTarget/d'{}
(以便
{}
保存由
xargs
处理的当前文件名)。祝你好运。不要使用带有
awk
sed
的管道,你可以用
awk
处理整个问题。