因執行一個scripe ,但顯示結果一直有問題,查看導出的檔案一直斷行~
檔案如下
#!/bin/bash
cat name.txt | while read name
do
echo "UPDATE test.name SET level= 5 WHERE level = 1 and ID="'$name'";"
done
cat name.txt | while read name
do
echo "UPDATE test.name SET level= 5 WHERE level = 1 and ID="'$name'";"
done
正常echo應該顯示↓
UPDATE test.name SET level= 5 WHERE level = 1 and ID='zzz2222344';
UPDATE test.name SET level= 5 WHERE level = 1 and ID='zzz199314';
但確變成
';DATE test.name SET level= 5 WHERE level = 1 and ID='zzz2222344
';DATE test.name SET level= 5 WHERE level = 1 and ID='zzz199314
UPDATE test.name SET level= 5 WHERE level = 1 and ID='zzz199314';
但確變成
';DATE test.name SET level= 5 WHERE level = 1 and ID='zzz2222344
';DATE test.name SET level= 5 WHERE level = 1 and ID='zzz199314
結果測試重新編輯一個新的name.txt檔,再次執行確無誤
查看兩個文件的差別
LINUX下指令diff 文件A 文件B 沒有顯示差異,結果使用cat -A [文件名] 查看
查看兩個文件的差別
LINUX下指令diff 文件A 文件B 沒有顯示差異,結果使用cat -A [文件名] 查看
[rosalie@224~] # cat -A name.txt #有問題的檔案
zzz2222344^M$ #直接cat 只有 zzz2222344
zzz199314^M$
zzz2333222^M$
zzz199814^M$
[rosalie@224~] # cat -A name_new.txt #正確的檔案
zzz2222344$
zzz199314$
zzz2333222$
zzz199814$
zzz2222344^M$ #直接cat 只有 zzz2222344
zzz199314^M$
zzz2333222^M$
zzz199814^M$
[rosalie@224~] # cat -A name_new.txt #正確的檔案
zzz2222344$
zzz199314$
zzz2333222$
zzz199814$
才發現原本一直斷段的文件,原來多了一個 ^M
檔案即使用複製的仍會出現問題,所以只好用指令把它去除
[rosalie@224~] # cat name.txt | tr -d ‘\r’ > name_new2.txt
去除後,可發現檔案大小有變,再次套用後執行就沒問題了,
或者可再用cat -A查看!
沒有留言:
張貼留言