2017-04-09 69 views
0

我有以下代碼:如何從awk中的字符串中選擇第s個值?

!/bin/sh 
cat [email protected] > C.txt 
awk -v nrc="$*" 'NF>max {max=NF;s=NR} END {print (,max)}' C.txt 

這是SH

sh test.sh A.txt B.txt D.txt E.txt F.txt 

我的問題是:我怎樣才能選擇內部AWK NRC的第s值後,我把它給awk作爲一個值?

如果我用nrc填充(,max)的空白空間,它會顯示所有的文件。我嘗試過使用grep,sed,cat,但這些工作都不在awk中。

我只想在打印最長的行後從nrc中打印第s個值。

A.txt B.txt等內部文件只是由空格分隔的隨機詞。

+0

什麼是NRC的問題? – radbrawler

+0

'split(nrc,a);打印[s]'。 –

+0

由A.txt B.txt生成的字符串D.txt E.txt F.txt –

回答

0

我讓你把它添加到你的腳本的問題不太清楚了,但這裏有split一個例子:

$ awk 'BEGIN{nrc="A.txt B.txt D.txt E.txt F.txt"; s=4; split(nrc,a); print a[s]}' 
E.txt 
+0

默認情況下分割考慮的分隔符是什麼?是空間嗎?如果不是,我可以給他一個嗎? –

+0

哦,它與分割,我只寫了,而不是nrf,nrc –

+0

默認情況下,分隔符_fieldsep_是'FS',它是'split'的第三個參數:'split(nrc,a,「」)' , 例如。 –

相關問題