[英]Do 'cat foo.txt | my_cmd' and 'my_cmd < foo.txt' accomplish the same thing?
[英]How do I convert text files in bash? (foo.txt to bar.txt)
我試圖通過bash使用foo.txt >> bar.txt
將一個文本文件追加到另一個。 問題是,foo.txt是Windows文本文件(我認為),因為一旦附加在bar.txt中
every new^M
line^M
ends^M
like this.^M
因此,它們肯定是兩種不同的文件類型。
我已經在Google上搜索了答案,但Google在搜索中不接受諸如“ >>”和“ ^”之類的特殊字符 。 我能找到的最接近的解決方案是在commandlinefu.com上報告的解決方案 ,但是它所做的只是從bar.txt中刪除r,這實際上根本不是解決方案。
因此,我在這里有兩個問題:
用dos2unix
轉換Windows行尾:
dos2unix foo.txt
sed 's/$'"/`echo \\\r`/" foo.txt >> bar.txt
或使用dos2unix
(如果可用)。
file foo.txt
具有DOS樣式的行尾,則file foo.txt
將輸出:“ ASCII文本,帶有CRLF行終止符”。 使用fromdos
和todos
或unix2dos
和dos2unix
。
查找命令dos2unix
和unix2dos
。 您不妨先制作一份副本( cp
)
快速而又骯臟的解決方案:
tr -d '\r' < foo.txt
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.