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='/'