我是shell脚本的新手,我使用以下代码对文件进行双重空间处理(输入文件是参数):
sed G $input_file >> $input_file
问题是,如果原始文件的内容是:
Hi
My name is
我的双倍行距文件是:
Hi
My name is
Hi
My name is
我需要在shell脚本中添加其他内容,以便我的文件只有:
Hi
My name is
答案 0 :(得分:5)
您正在使用追加运算符(>>
),它附加到相关文件中。话虽这么说,你通常不能在bash中使用>
操作并输出到同一个文件。对于sed
的具体情况,您可以使用-i
选项(取决于版本和平台):
sed -i G $input_file
如果您的版本具有该选项,则应该“就地”编辑您的文件。我说“就地”,因为我很确定实际创建一个新文件并将其移回到第一个文件之上(inode不同)。如果没有,您将输出到单独的文件,并将文件移回:
sed G ${input_file} > ${input_file}.bak
mv ${input_file}.bak ${input_file}