2014-02-26 49 views
1

我想:存儲的廁所,結果在一個變量

y=$(wc -l email.txt) 

它給人的行數,也是名email.txt。我不明白爲什麼。

我使用Ubuntu 13.04

+0

在刷新它之後,WC的結果可以指向一個const = null。 – Madmenyo

+0

您最近編輯的「固定」代碼(使用'wc -l <​​email.txt'而不是'wc -l email.txt')。請不要這樣做;這意味着這個問題不再有任何意義。我已回滾您的修改。 –

+0

@MennoGouw:我不明白這是什麼意思。 –

回答

0

您可以使用:

y=$(wc -l < email.txt) | tr -d ' ') 
+0

什麼是TR -d「」 – user2831683

+0

因爲我需要,但我想知道,如果我們甚至刪除工作「通過TR -d」,然後在y中的實際值將b在.txt文件的行數? – user2831683

+0

'TR -d'「'已經被用於剝離通過'wc'命令生成的號碼之前隔開。 – anubhava

1

如果調用wc與文件名作爲參數,它打印該文件名與行數一起,話和文件中的字符(或者如果使用wc -l,則只是行數)。

如果運行wc -l其輸入重定向從一個文件中,wc命令沒有訪問該文件的名稱,因此它並不打印。

特別是,如果你使用wc -l它打印只是行數(後面換行);沒有額外的空白,至少在我使用的版本爲wc

(這是輕微的不幸,許多Unix文本處理工具的行爲與command file.txtcommand < file.txt以同樣的方式,但wc沒有)

因此,所有你需要的是:

y=$(wc -l < email.txt) 

如果由於某些原因,您仍想通過email.txt作爲命令行參數,您可以使用sed來選擇行數:

y=$(wc email.txt | sed 's/ .*//') 

sed命令改變輸出

1234 email.txt 

只是

1234 

,並可能是,無論是打印的,他們是如何調用額外的信息比wc其他有用的工具(見sha1sum,爲例)。

+0

這是工作,我遇到了一個麻煩,除此之外,我想從腳本外部訪問這個文本文件(email.txt)到腳本中,意味着我可以訪問這個文件,然後我能夠進行計算用它。我怎樣才能訪問這個文件到腳本 – user2831683

+0

@ user2831683:發佈一個新問題。 –

相關問題