我有此腳本命令unix2dos
#!/bin/sh
for i in `ls -R`
do
echo "Changing $i"
fromdos $i
done
我想從許多文件,這是在多個子目錄刪除「^ M」 charcaters。我得到了這個:
fromdos: Unable to access file
是否有somethig我失蹤?
在此先感謝。
我有此腳本命令unix2dos
#!/bin/sh
for i in `ls -R`
do
echo "Changing $i"
fromdos $i
done
我想從許多文件,這是在多個子目錄刪除「^ M」 charcaters。我得到了這個:
fromdos: Unable to access file
是否有somethig我失蹤?
在此先感謝。
我猜你不需要爲環路。
這裏是解決方案的擴展名爲 「.EXT」 文件的快速全景(例如命令應以某種方式進行限制)
注意:^ M與CTRL-V獲得的」 + 「CTRL-M」
# PORTABLE SOLUTION
find /home -type f -name "*.ext" -exec sed -i -e 's/^M$//' {} \;
# GNU-sed
find /home -type f -name "*.ext" -exec sed -i -e "s/\x0D$//g" {} \;
# SED with more recent nux
find /home -type f -name "*.ext" -exec sed -i -e "s/\r$//g" {} \;
# DOS2UNIX
find /home -type f -name "*.ext" -print0 | while read -r -d "$(printf "\000")" -r path; do dos2unix $path $path"_new"; done
# AWK
find /home -type f -name "*.ext" -print0 | while read -r -d "$(printf "\000")" -r path; do awk '{ sub("\r$", ""); print }' $path > $path"_new"; done
# TR
find /home -type f -name "*.ext" -print0 | while read -r -d "$(printf "\000")" -r path; do cat $path | tr -d '\r' > $path"_new"; done
# PERL
find /home -type f -name "*.ext" -exec perl -pi -e 's/\r//g' {} \;
變量$原稿是不確定的。 – 2011-03-25 18:52:49