日期:2014-05-16 浏览次数:20617 次
1、awk获取文件中指定项:系统读取一行数据根据"$"符合后的数字判断获取具体的项目,之后继续读取下一行直到文件结尾。
例如:
awk '{print $2}' awktest。打印第二项字符。
awk '{print $2}' awktest > tt.txt。默认以空格为分隔符,系统通过检索空格,发现空格后第一个非空格字符到下一个空格字符之间的字符即为第二项。
awk -F ',' '{print $2}' awktest > tt.txt。以‘,’为分隔符,检索‘,’后边的第一个字段。
awk -F ',' '{print $2}' awktest | tee tt.txt将获取的内容写入tt.txt的同时,在屏幕中输出。(tee命令:它把输出的一个副本输送到标准输出,另一个副本拷贝到相应的文件中)
打印表头尾:
awk 'BEGIN{print "NAME AGE\n --------------"}{print $0}END{print"end-of"}' awktest
awk注意事项:
1、确保整个awk命令用单引号括起来。
2、确保命令内所有引号成对出现。
3、确保用花括号括起动作语句,用圆括号括起条件语句。
2、管道的使用:|
例如:who | awk '{print $2 "\t" $1}'。结合awk使用比较多。
3、用shell写的一个小程序删除临时文件,并将文件名保存
#!/bin/sh
echo "This is a removing temp files shell!"
echo -e "input path\c"
read path
ls "$path"/*~ | tee rmPath.txt
rm "$path"/*~
echo "rm ok!"
4、重定向操作符command << delimiter:cat > leeboytext.txt <<leeboy。当输入到leeboy时,之前的内容提交到文件leeboytext.txt中。
5、错误信息记录:awk '{print $1"}' leeboytext.txt > leeboy.txt 2>&1。合并标准输出和标准错误输出到文件leeboy.txt中。(可以理解为将2的内容重定向到1中)
6、文件描述符和exec的使用:
#!/bin/sh
#将文件重定向到标准输入,将文件描述符4指定为标准输入(可以理解为将文件内容重定向到标准输入中,在重定向的文件描述符中)
exec 4<&0 0<../leeboy.txt
read line1 #读取一行
read line2
exec 0<&4 #关闭文件描述符4
echo $line1
echo $line2