2017-08-07 26 views
0

我有一個腳本:'analysis.pl'需要單獨文件中的行數作爲輸入參數:bash:如何實現'wc -l'輸出作爲另一個腳本的參數

perl ./analysis.pl max=[input number of lines in separate file] 

如果我可以將'wc -l separate_file'的輸出作爲perl腳本的輸入,那將是非常有用的。

max=`wc -l NRL.txt` 
echo $max 
perl ./analysis.pl max=$max 

的問題是,廁所-l給出的行數和返回一個錯誤的說法,只能採取一個輸入文件名....

perl ./analysis.pl max=150000 separate_file ####error 

所以,我怎麼能得到wc -l只返回行數而不是文件名?

回答

4

當傳遞文件作爲標準輸入WC不回波文件名

wc -l < NRL.txt 
+0

不錯,我不知道這個問題。如果我們使用'cmd file'和'cmd

+0

,file是一個參數,很多命令接受一個文件名列表(ls,cp,mv,grep等),而使用'cmd

1

有許多方法以特異性解決這個問題,但一個方法是,管的WC輸出到AWK和拉號超出wc的輸出:

max=`wc -l NRL.txt | awk '{print $1}'` 
+0

一樣的方法可以做同樣的事情,'wc -l NRL.txt | sed's /。* //''或'wc -l NRL.txt | tr -d'a-z。 ''或'wc -l NRL.txt | cut -d''-f1'或'a = $(wc -l NRL.txt)&& echo $ {a%*}' – Anubis

相關問題