2013-02-01 84 views
1

在UNIX中,線以下錯誤echo "abc" | tr [a-z] [A-Z]所示:TR [AZ] [AZ]示出了誤差在UNIX

tr: extra operand `b' 
    Try tr --help' for more information. 

它不顯示錯誤,並且打印正確的輸出ABC如果從任何其他目錄運行在相同的服務器或任何其他服務器中。在特定目錄內顯示上述錯誤。
我驗證並沒有發現這樣衝突的文件或腳本。不存在具有名稱tr的腳本。
which tr命令在目錄以及目錄外部給出相同的輸出/usr/bin/tr
代替tr,我甚至嘗試了echo "abc" | /usr/bin/tr [a-z] [A-Z]以避免與其他文件(如果有的話)發生衝突。但同樣的錯誤依然存在。
如果我嘗試echo "abc" | tr 'a' 'B',它會產生輸出爲Bbc。我無法弄清楚這個錯誤。

回答

5

tr不需要括號:

tr a-z A-Z 

[a-z]有特殊含義的你的shell(擴大匹配文件名的列表)。在不起作用的目錄中可能有匹配的文件(或幾個匹配的文件)。

+0

謝謝..這爲我工作。但是我很驚訝,因爲一個月前運行的腳本具有這樣的行。但它現在顯示了錯誤。可能是你的第二行是這個答案。 – ramesh

0

是的,它是正確的,tr [a-z]比轉換它會尋找從a在這種情況下[a-z]開始z文件名等轉換爲文件

到用戶的主目錄,查找文件名一樣

ls -lrth 

-rw-r--r-- 1 root   root   1.5M Aug 3 11:02 a 

將其重命名

mv a a_backup 
相關問題