2013-04-05 136 views
-1

當我將一個命令輸出重定向到一個帶有>的文件時,該文件是以「DOS格式」創建的,之後如果我希望該文件是unix,則必須調用dos2unix命令格式化。輸出重定向到文件

有沒有辦法直接從重定向命令做到這一點,並避免處理文件後?

P.S.我使用Ubuntu,所以我不明白爲什麼在首位DOS格式創建的文件...

+0

該命令是什麼呢? 「DOS格式」是什麼意思? – 2013-04-05 21:05:49

+0

在DOS文件中,新行顯示不同,然後在linux文件中顯示。 我想要重定向的輸出命令是'tail'命令,用於從文件中獲取最後一行:'tail -1 filename.txt> lastline.txt' – user2250673 2013-04-05 21:12:05

+0

DOS = CRLF,Unix = LF,Mac = CR – 2013-04-05 21:12:58

回答

1

您可以在一行中運行多個命令用冒號;

分離你的命令

實施例:

your_cmd > your_outfile ; dos2unix your_outfile

+0

我知道,但是我想在一個命令中解決這個問題。我想避免以DOS格式創建文件並在重新格式化之後。 – user2250673 2013-04-05 21:16:06

1

如果dos2unix可以用作過濾器(如UNIX實用程序通常可以),可以管道輸出到這樣的:

command | dos2unix > file 

你的情況:

tail -1 filename.txt | dos2unix > lastline.txt 
+0

我不想使用'dos2unix'。 – user2250673 2013-04-06 07:37:00

+0

@ user2250673爲什麼不能在不創建中間文件的情況下一步完成所需結果? – 2013-04-06 08:18:21