使用echo和cat的不需要的空行

时间:2014-03-19 09:53:58

标签: bash echo cat

我想在文本文件的开头添加一行。我有input.txt:

line1
line2
line3

并想要添加'time / F:x1:x2'这一行以

结尾
time/F:x1:x2
line1
line2
line3

我正在尝试用

执行此操作
echo 'time/F:x1:x2' | cat - input.txt>output.txt

但我得到的是

time/F:x1:x2
line1

line2

line3

也就是说,我得到了我不想要的空行。我怎么能避免这个? [编辑:这不是Unwanted line break using echo and cat的重复,因为我错误地询问了那里的换行符 - 我真正想要避免的是空行。]

2 个答案:

答案 0 :(得分:1)

也许您的原始文件具有MS-DOS行结尾(\r\n),并且您用于显示该文件的任何内容都足够智能以检测该文件。然后,当您将带有unix行结尾(\n)的行添加到顶部时,检测会中断,并且会在中间显示空白行。

修改 转换行结尾有无数种方法。大多数编辑都可以以交互方式为您完成。在您的情况下,您可以使用

扩展您的管道
| tr -d '\r' > output.txt

答案 1 :(得分:1)

  

我想在文本文件的开头添加一行。

这个怎么样:

$ cat test 
line1
line2
line3

$ sed -i '1i time/F:x1:x2' test 

$ cat test 
time/F:x1:x2
line1
line2
line3