www.ctrt.net > shEll 问题 Awk %F',' '{print $0}'

shEll 问题 Awk %F',' '{print $0}'

-F',' 指定逗号为字段分隔符 print $0 打印整行,$0表示当前行;若是$1则表示当前行的第一个字段,依此类推。 其实这里指定字段分隔符没什么用,因为并不会打印具体的某一个字段,而是整行都打印出来了。 等同于 awk '{print}' print默认就是打...

awk默认是以行为单位处理文本的,对1.txt中的每一行都执行后面 "{ }" 中的语句。 awk中的两个术语: 记录(默认就是文本的每一行) 字段 (默认就是每个记录中由空格或TAB分隔的字符串) $0就表示一个记录,$1表示记录中的第一个字段。 一般 pri...

打印第一行的第一个字段,默认分隔符为 空格或制表符TAB (都可以)。 源数据可以是通过管道传递过来的多行字符串,也可以是文件。 例如: echo -e "A B C\nD E F\nG H I" | awk 'NR==1 {print $1}'或者: awk 'NR==1 {print $1}' file.txt

$2:表示第二个字段 print $2 : 打印第二个字段 awk '{print $2}' $fileName : 一行一行的读取指定的文件, 以空格作为分隔符,打印第二个字段 比如有这样一个文件 a1 b1 c1 d1 a2 b2 c2 d2 执行的结果是,输出 b1 b2

awk两边不是引号,应该是反引号 result=`awk '$2>80{print}' scores.txt` 或者使用 result=$(awk '$2>80{print}' scores.txt)

$ cat /tmp/abc a 1 b 2 c 3 $ cat a.sh #!/bin/bash awk '{print $'$1'}' /tmp/abc $ sh -x a.sh 1 + awk '{print $1}' /tmp/abc a b c $ sh -x a.sh 2 + awk '{print $2}' /tmp/abc 1 2 3 可以单引号弄出来

awk '{a+=$1;if(NR%3==0){print a;a=0}}' your_file 这样就行了,但如果文件的行数不是三的倍数,那么最后1~2行的和不会输出 如果需要输出最后1~2行的和,在最后判断一下就好了,如下: awk '{a+=$1;if(NR%3==0){print a;a=0}}END{if(NR%3!=0)pr...

$ echo '1=one&2=two&3=three&4=four&5=five' | gawk -F '&' '{$1=gensub(/.*=/,""," a",$1);$3=gensub(/.*=/,"","a",$3);print $1"_"$3}'

用单引号将awk命令括起来,不要用双引号,在shell中单引号中$不会被解释成变量,因此在awk脚本单引号中$n就表示awk变量,不会被shell处理

else和if之间要有个空格

网站地图

All rights reserved Powered by www.ctrt.net

copyright ©right 2010-2021。
www.ctrt.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com