當我將一個命令輸出重定向到一個帶有>
的文件時,該文件是以「DOS格式」創建的,之後如果我希望該文件是unix,則必須調用dos2unix
命令格式化。輸出重定向到文件
有沒有辦法直接從重定向命令做到這一點,並避免處理文件後?
P.S.我使用Ubuntu,所以我不明白爲什麼在首位DOS格式創建的文件...
當我將一個命令輸出重定向到一個帶有>
的文件時,該文件是以「DOS格式」創建的,之後如果我希望該文件是unix,則必須調用dos2unix
命令格式化。輸出重定向到文件
有沒有辦法直接從重定向命令做到這一點,並避免處理文件後?
P.S.我使用Ubuntu,所以我不明白爲什麼在首位DOS格式創建的文件...
您可以在一行中運行多個命令用冒號;
實施例:
your_cmd > your_outfile ; dos2unix your_outfile
我知道,但是我想在一個命令中解決這個問題。我想避免以DOS格式創建文件並在重新格式化之後。 – user2250673 2013-04-05 21:16:06
如果dos2unix
可以用作過濾器(如UNIX實用程序通常可以),可以管道輸出到這樣的:
command | dos2unix > file
你的情況:
tail -1 filename.txt | dos2unix > lastline.txt
我不想使用'dos2unix'。 – user2250673 2013-04-06 07:37:00
@ user2250673爲什麼不能在不創建中間文件的情況下一步完成所需結果? – 2013-04-06 08:18:21
該命令是什麼呢? 「DOS格式」是什麼意思? – 2013-04-05 21:05:49
在DOS文件中,新行顯示不同,然後在linux文件中顯示。 我想要重定向的輸出命令是'tail'命令,用於從文件中獲取最後一行:'tail -1 filename.txt> lastline.txt' – user2250673 2013-04-05 21:12:05
DOS = CRLF,Unix = LF,Mac = CR – 2013-04-05 21:12:58