[awk] 用-F指定多分隔符,awk的for语句, BEGIN, END

[awk] 用-F指定多分隔符

echo $(pwd)  | awk  -F'[/.@]' '{pring $1,$2,$3,NF,NR}'

比如我的路径
$ pwd
/cygdrive/d/work/android.dooyogame/dy_cike/dy_cike_xcf/assets/image

要把目录列出来
$ echo $(pwd)  | awk  -F'[/]' '{print    "first="$1,"second="$2,"third="$3,NF,NR}' 
显示结果
first= second=cygdrive third=d 9 1
 

ls -l显示文件详细信息,用空格分隔后,将第二列数字相加
$ ls -l | awk 'BEGIN { FS=" ";print "开始统计文件数目";co=0} {print $2; co=co+$ 2;} END {print "总文件数目 $2f",co}' 
开始统计文件数目
38
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
总文件数目 $2f 54

awk中用for语句遍历当前路径,注意awk中for语句与外界for语句不同
$ echo $(pwd) | awk 'BEGIN {FS="/"; print "把当前路径的每个文件夹都单独显示:";}  { for(i=1;i<=NF;i++) print $i;} END{print NF}' 
把当前路径的每个文件夹都单独显示:

cygdrive
d
work
android.dooyogame
dy_cike
dy_cike_cikechuanshuo_init_init
7

外部for语句用法
for((i=0; i<99;i++)); do echo $i; done

如何用AWK将一个大文件分割成几个小文件?J将文件myfile里面第一到第十行存入newfile

我试过了,可以用的,好象这样也可以的
awk -F% 'NR==1,NR==10 {print $0}' myfile>newfile

你可能感兴趣的:([awk] 用-F指定多分隔符,awk的for语句, BEGIN, END)