
我一直在嘗試創建一個名為 的文件~/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