2014-04-28 82 views
1

有谁知道这是什么意思?sed命令在bash输入输出文件中

sed -e 's/\r$//' inputfile > outputfile 

这是我到目前为止有:

\r指回车(CR)

所以可能交换毛坯返回滑架?在输入文件中? 我不太确定

回答

2

它正在将文件从CRLF-终止行改为LF-终止行。前者往往是Windows型文件,每行以回车/换行符结尾(CRLF\r\n)。

UNIX类型的文件只有一个换行符(LF\n)。

具体而言,sed命令代用品\r在一行(由$表示)与没有结束时,相同s/xyzzy/plugh/会改变在该行的第一个xyzzyplugh

2

sed是您调用的程序的名称。

-e告诉sed以下参数是要运行的表达式。

s/\r$//是一个替换:它告诉sed在行尾($)用空格替换回车。 Sed为每条线都做到这一点。

inputfile是sed读取其输入的文件。

>是重定向操作符,它表示sed的输出将被重定向到outputfile

基本上,结果应该与dos2unix(有时更名为fromdos)相同。

+0

谢谢。 你知道这个有什么不同吗? sed -e's/$/\ r /'inputfile>输出文件 我猜想它告诉说要用空格替换回车符? – user3576917

+0

@ user3576917:它用行回车符('\ r')替换行尾('$')。请参阅'unix2dos'或'todos'来寻找替代品。 – choroba