wc -l 在 Linux 與 macOS 上輸出的格式不同
在 Linux 上跑起來沒問題的 shell script 到 macOS 上發現有狀況,追了問題後發現是 wc -l 輸出的格式不同導致的。
Linux 上面是直接輸出數字:
$ echo abc | wc -l
1
#Computer #Linux #MacOS #Murmuring #OS #Software #cli #command #interface #line #linux #mac #macos #osx #output #posix #script #shell #space #trailing #wc
wc -l 在 Linux 與 macOS 上輸出的格式不同
在 Linux 上跑起來沒問題的 shell script 到 macOS 上發現有狀況,追了問題後發現是 wc -l 輸出的格式不同導致的。 Linux 上面是直接輸出數字: $ echo abc | wc -l 1 macOS 上面則會在開頭看到 trailing space: $ echo abc | wc -l 1 可以搜到蠻多地方都有在討論這個問題,像是這篇:「WC on OSX - Return includes spaces」。 不過看起來 POSIX 標準沒有直接規定輸出的格式,只好照著語意再處理了,像是 | awk '{print $1}' 之類的方法。...
