[英]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
您沒有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.