#!/bin/bash # for ((i=1;i<=10000;i++)); # do # c1=`shuf -i 1-10000 -n 1` #生成随机数 # c2=`shuf -i 1-10000 -n 1` # c3=`shuf -i 1-10000 -n 1` # c4=`shuf -i 1-10000 -n 1` # echo $c1 $c2 $c3 $c4 >>awk_column.txt; # done
-------上面注释的部分用来生成awk_column.txt
c1=`shuf -i 1-10000 -n 1`
c2=`shuf -i 1-10000 -n 1`
awk 'BEGIN {} {if ($1 == exclude1 || $1 == exclude2){print NR,$1;}} END {}' exclude1=$c1 exclude2=$c2 awk_column.txt
awk格式:
BEGIN {} {pattern } END {}
#BEGIN,END,中间, 3个部分都是可选
#每一个{}都是一个循环体,会对文件中每一行进行迭代
外部传入awk参数2种方式:
第一种: -v (只能传一个参数)
awk -v exclude1=$c1 'BEGIN {} {if ($1 == exclude1 ){print NR,$1;}} END {}' awk_column.txt
第二种:
awk 'BEGIN {} {if ($1 == exclude1 || $1 == exclude2){print NR,$1;}} END {}' exclude1=$c1 exclude2=$c2 awk_column.txt
几个常量:
NR:number of records, 行号 NF:number of fields,有几列 $0:执行过程中当前行的内容 $1:执行过程中当前行的第一个字段内容 $2:执行过程中当前行的第二个字段内容 ......