rsym.net
当前位置:首页 >> shEll Awk 倒数第二列 >>

shEll Awk 倒数第二列

awk '{ res = cur; cur = $(NF-1) } END{ print res }' $filename 打印倒数第二行的第二列,是没有问题的。 你说出现报错,可能是你的数据集中有某些行只有一列,导致通过NF-1去找第-1列当然就失败了。 你可以这样处理下容错: awk ' { if (NF >=...

$ echo "1 2 3 4 5" | awk '{$1="";sub(" ", "");print}' 2 3 4 5 sub只替换第一个匹配的字符串。 sub(" ", "") 去除第一个空格。

awk '{print NF}' file 打印每行的列数,以空格为分隔符

awk '{sum[$1]+=$2}END{for(c in sum){print c,sum[c]}}' 输入文件名

awk '{print $NF}' filename 打印每行的最后一列

设分隔符是空格,用awk 或 cut都可以 cat file.txt | cut -d " " -f2 cat file.txt | awk '{print $2}'

写个脚本,使用for循环,设一个变量i 代表的是行号,从1开始,然后每次执行加1,类似于 a=`cat file|wc -l` for (( i = 0; i < = $a; i++ )) do j = `cat file |awk "NR==$i{print}"|awk '{print $2}'` k =`cat file |awk "NR==$i{print}"` if [...

搞不清楚你到底想问啥艾,awk是可以赋值进数组的,比如将三行中的最后生给弄到数组A中: tail -1 lftpFileList.txt | awk '{split($0,A," ");}' 这就全进数组里了

先设个变量: path=/usr/share/man/man5/locale.alias.5.gz 法一,bash中特有的字符串分割法: echo ${path%/*}/ 法二,sed中的s替换命令,利用了*在正则中的贪婪特性: echo $path | sed 's#\(.*/\).*#\1#' 法三,awk字段分割重组: echo $path...

cat txt.txt|awk -v line=$k '{print ${line}} '>sample.txt awk 支持从shell中传参数。

网站首页 | 网站地图
All rights reserved Powered by www.rsym.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com