簡體   English   中英

從dos2unix轉換時添加了隱藏字符

[英]Hidden characters added while converting from dos2unix

以逗號分隔的.csv格式輸入文件:

25 Mbps^M
25 Mbps^M
25 Mbps^M
0 Mbps ^M
0 Mbps ^M
0 Mbps ^M
0 Mbps ^M
ash Back  ^M
ash Back  ^M
ash Back  ^M

從dos2unix轉換時,^ M之前的空格將轉換為隱藏字符。

需要消除空格,以便在從dos2unix轉換時不存在隱藏的字符。

嘗試使用sed,tr,但無濟於事

for filename in *.csv
    do
        echo "Converting $filename to UNIX format!!!!!\n \n"

        tr -d '\r' $filename > test_2
        #Converting file into Unix format and moving to input dir
        cp test_2 $filename
        dos2unix $filename > /input/$filename
    done

從dos2unix轉換后,文件不應包含任何隱藏字符。

正如@Oguz Ismail所說, dos2unix從數據中刪除了CR 您所謂的“隱藏字符”就是通常所說的“空格”(通常是通過按下鍵盤底部的大條來完成的)。

您可以使用GNU sed實現您想要的:

sed 's/[[:space:]]*$//g' -i *.csv
  • [[:space:]] :空格字符:在'C'語言環境中,這是制表符,換行符,垂直制表符,換頁符, 回車符和空格。 [ 參考 ]
  • -i :指定要就地編輯文件。 [ 參考 ]

您沒有GNU sed:

for filename in *.csv
do
  sed 's/[[:space:]]*$//g' "$filename" > "${filename}.out"
  mv -f "${filename}.out" "${filename}"
done

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM