可能重複:
bash echo number of lines of file given in a bash variable輸出數量在Unix中篩選
想知道如何輸出線在一個文本文件的數量屏幕,然後將其存儲在一個變量中。 我有一個名爲stats.txt文件,當我運行wc -l stats.txt
它輸出8 stats.txt
我試圖做x = wc -l stats.txt
以爲它只會存儲數量,剩下的只是視覺,但它不工作:(
感謝您的幫助
可能重複:
bash echo number of lines of file given in a bash variable輸出數量在Unix中篩選
想知道如何輸出線在一個文本文件的數量屏幕,然後將其存儲在一個變量中。 我有一個名爲stats.txt文件,當我運行wc -l stats.txt
它輸出8 stats.txt
我試圖做x = wc -l stats.txt
以爲它只會存儲數量,剩下的只是視覺,但它不工作:(
感謝您的幫助
,你可以嘗試:
x=`cat stats.txt | wc -l`
或(從another.anon.coward的評論):
x=`wc -l < stats.txt`
你可以不用'cat'&pipe來做'x = $(wc -l <stats .txt)' –
@gokcehan當我跑了它---- cat coursefile.txt | wc -l -----它工作。但是,當我試圖存儲它時,我得到了一個錯誤:-bash:x:命令未找到 – Masterminder
不要忘記反引號('') – none
有做這個兩個POSIX標準語法:
x=`cat stats.txt | wc -l`
或
x=$(cat stats.txt | wc -l)
它們都運行該程序,並用命令的標準輸出替換調用腳本,在這種情況下將其分配給$x
變量。但是,請注意,這兩個修剪結束換行符(這實際上是你想要在這裏,但有時,當你期望換行符時,可能會很危險)。
此外,第二種情況可以很容易嵌套(例如:$(cat $(ls | head -n 1) | wc -l)
)。你也可以用第一種方法做,但它更復雜:
`cat \`ls | head -n 1\` | wc -l`
也有引用問題。您可以包括雙引號內的這些表述,但隨着反單引號,你必須繼續命令內引用,而使用括號讓你「開始新的報價」組:
"`echo \"My string\"`"
"$(echo "My string")"
希望這有助於=)
感謝您的幫助 – Masterminder
不需要'貓'或任何重定向/管道 - 只需要:x = $(wc -l /path/to/file.txt) –
'x = $(wc -l <stats.txt)''? –
一個bash教程可以幫助你:http://tldp.org/LDP/Bash-Beginners-Guide/html/ –