by tangke [email=mumutouv@gmail.com]mumutouv@gmail.com[/email] 2009-10-18 awk 用法:awk ‘ pattern {action} ‘ 变量名 含义 ARGC 命令行变元个数 ARGV 命令行变元数组 FILENAME 当前输入文件名 FNR 当前文件中的记录号 FS 输入域分隔符,默认为一个空格 RS 输入记录分隔符 NF 当前记录里域个数 NR 到目前为止记录数 OFS 输出域分隔符 ORS 输出记录分隔符 1、 awk ‘/101/’ file 显示文件file中包含101的匹配行。 a...
awk 'BEGIN{FS=OFS="\t"} {"uuidgen -t" | getline id; print id,$0;}' $file 为什么每行打印出来的id是一样的?
本帖最后由 w597766166 于 2012-01-15 00:54 编辑 awk调用shell命令时,想用到awk自己的参数,网上搜了点教程,不过还是有点疑惑。 1.awk 'BEGIN{v1="cat";v2="tt.txt";system(v1" "v2)}' 成功显示tt.txt中的内容,但是如何将其输出,即"cat tt.txt" 在awk语句中捕获呢(比如说将其中一列保存到一个变量中)? 2.awk 'BEGIN{v1="cat";v2="tt.txt";v1" "v2 | getline;print $0}' 网上流行用此方法,但是我这报错误sh: tt.txt: ...
ORDER="0e 31 00 22 00 04 02 04 02 " awk 'BEGIN{split('"\"$ORDER\""',START," ");print START[6]}' eval $(awk 'BEGIN{split('"\"$ORDER\""',a," ");for(i in a)print "START["i"]="a}') cat file 0e 31 00 22 00 04 02 04 02 必须要用圆括号括起来 B=($(awk '{print $0}' file)) A=(`awk '{print $0}' file`) echo ${A[4]} 00 list="0e 31 00 22 00 04 02 04 02 " START=$(awk 'BEGIN{print "'"$list"'"}') echo ${START[0]} 0...
在网上看到 用shell脚本查看cpu的脚本 #/bin/sh Max_CPU=0 Avg_CPU=0 Total_Time=1 Process=$1 Interval=$2 # check the parameters if [ $# -ne 2 ]; then echo "Usage: $0 ProcessName Interval" exit fi LogFile="Per.txt" echo "`date`" > $LogFile while sleep $Interval do top -d 1 -n 1|grep $Process|grep -v grep|awk '{print $9"\t"$10}' >> $LogFile done 问题出现在awk '{print $9"\t"$10}' 我用命令...
///////////////shell//////////////////////// shell被单引号括起来之后,特殊符号将失去它转义的意义 先用双引号把$1的转义生效,然后再用单引号 [root@as4 home]# cat hellofun.sh #!/bin/bash #hellofun hello(){ echo $1 echo '$2' echo "$2" } hello aaa bbb [root@as4 home]# ./hellofun.sh aaa $2 bbb [root@as4 home]# //////////////////////awk/SED///////////////// $awk '{pri...
[quote]#!bin/bash java -version 2>&1|awk -F'"' 'NR==1{split($2,a,".");if(a[2]<5){ print "your java version is too low";system("exit 1");}}' echo hello world[/quote] 与 [quote]#!bin/bash java -version 2>&1|awk -F'"' 'NR==1{split($2,a,".");if(a[2]<5)print "your java version is too low";}' exit 1 echo hello world [/quote]不同 exit的位置
2. 域和记录 a w k执行时,其浏览域标记为$ 1,$ 2 . . . $ n。这种方法称为域标识。使用这些域标识将更容易对域进行进一步处理。 使用$ 1 , $ 3表示参照第1和第3域,注意这里用逗号做域分隔。如果希望打印一个有5个域的记录的所有域,不必指明$ 1 , $ 2 , $ 3 , $ 4 , $ 5,可使用$ 0,意即所有域。Aw k浏览时,到达一新行,即假定到达包含域的记录末尾,然后执行新记录下一行的读动作,并重新设置域分隔。 注意执行时不要混淆符...