2017-04-09 41 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,“”)' , 例如。 –

相关问题