Shell

執行 wc 並僅顯示字數

  • September 2, 2021

我一直在嘗試創建一個名為 的文件~/dictwords.txt,其中包含在文件中找到的單詞數/usr/share/dict/words

我已經創建了文件,然後我刪除了它,因為我做錯了我最初執行了 echo 命令。然後我嘗試了這個命令並且非常興奮,因為我認為我是正確的。

wc -w /usr/share/dict/words > ~/dictwords.txt

還是錯了,我應該只有數字,沒有文件名。

預設情況下,wc列印結果和文件名。如果您只想要結果,則必須wc從標準輸入進行讀取輸入:

</usr/share/dict/words wc -w > ~/dicwords.txt

使用您目前的解決方案,您可以使用其他一些工具來僅獲取結果wc,例如cut, awk, grep

wc -w /usr/share/dict/words | cut -d' ' -f1 > ~/dicwords.txt

儘管假設實現wc不會在數字前添加空格字元,但並非每個wc實現都如此。

該文件/usr/share/dict/words應每行包含一個單詞。在某些系統上,我想它可能每行可能包含一個“字典術語”,並且每一個都可能由多個以空格分隔的單片語成,但我自己從未見過。

你得到的行數之一

  • wc -l </usr/share/dict/words(計算文件中換行符的數量)
  • sed -n '$=' /usr/share/dict/words(在最後一行,輸出目前行號)
  • awk 'END { print NR }' /usr/share/dict/words(在輸入結束時,輸出讀取的記錄(行)數)
  • grep -c '[^[:space:]]' /usr/share/dict/words(計算至少有一個非空格(-like)字元的行數)

其中,該wc -l變體的可移植性最差,因為它可能會在實際數字之前和/或之後輸出或不輸出額外的空格。

引用自:https://unix.stackexchange.com/questions/139197