運行 wc 並僅顯示字數統計

運行 wc 並僅顯示字數統計

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

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

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

它仍然是錯誤的,我應該只有號碼,沒有文件名。

答案1

預設情況下,wc列印結果和檔案名稱。如果您只想要結果,則必須wc從 stdin 讀取輸入:

</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實作都是如此。

答案2

如果您需要在腳本中使用字數統計,您可以將該值儲存到變數中:

numWords=$(wc -w /usr/share/dict/words | tr -dc '0-9')

否則,您可以將其儲存到文件中:

wc -w /usr/share/dict/words | tr -dc '0-9' > ~/dicwords.txt

答案3

該文件/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(計算至少有一個非空格(類似)字元的行數)

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

答案4

這是使用 的解決方案cat,它避免在結果後列印檔案名稱。

cat /usr/share/dict/words | wc -w

相關內容