sed & awk

1 删除每行前N个字符,经常从网上拷贝代码,但是都带行号的,用这个不错。

sed -i 's/^...//' xxx.c 

 

2 sed 比对每一行数据,如附和样式,执行指定操作。
删除D

sed '1,4d' filename
sed '/[0-9]\{3\}/d' filename
sed '/^$/d' filename
sed '/la/p' filename

 

3 替换S/打印P (取用附和样式的字符串)

sed 's/LL/oo/p'
sed 's/LL/oo/gp'
sed 's/^...//' filename
sed -n '/AAA/s/222/333/p' filename
sed -n '1,4s/N/P/P' filename

sed 's/^/xxx/' filename >output

 

4 awk的工作方式是:读取数据文件,将每一行数据实为一条记录。每笔记录以字段分隔符分成若干段。

5 打印ifconfig的ip地址:

ifconfig | grep 'inet addr:' | grep Bcast |awk '{print $2}' | awk -F: '{print $2}'

 

6 获取ra0的ip。

ifconfig ra0 | grep 'inet addr:' | grep Bcast |awk '{print $2}' | awk -F: '{print $2}'
ifconfig ra0 | awk '/inet addr:/{print $2}' | awk -F: '{print $2}'

 

7 判断ra0是否有ip

ifconfig ra0 | grep 'inet addr:'

 


然后,判断返回值的长度。

8 获取ra0连接的ssid信息, 两种获取ssid信息的方法:

iwconfig ra0 | awk '/ESSID/{print $4}'| awk -F: '{print $2}' | sed -n 's/"//gp'
iwconfig ra0 | awk '/ESSID/{print $4}'| awk -F'"' '{print $2}'

 

9 ux shell 列出当前目录的文件树/目录树
文件树:

find . -print 2>/dev/null|awk '!/\.$/ {for (i=1;i<NF;i++){d=length($i);if ( d < 5 && i != 1 )d=5;printf("%"d"s","|")}print "---"$NF}' FS='/'

 

10 目录树:

find . -type d -print 2>/dev/null|awk '!/\.$/ {for (i=1;i<NF;i++){d=length($i);if ( d < 5 && i != 1 )d=5;printf("%"d"s","|")}print "---"$NF}' FS='/'

 

posted @ 2016-06-17 21:35  JustRelax  阅读(120)  评论(0编辑  收藏  举报