首页 > Linux > sed,awk使用小记

sed,awk使用小记

2011年8月25日 发表评论 阅读评论

awk 默认是用空格作为分隔符,后面的大括号需要用单引号引起来,不能用双引号,否则就得不到想要的结果,如果要指定分隔符,使用 -F 分隔符。例如从文本-rw-r–r– 1 root root 165 Aug 25 12:51 runAll.sh中获取165,可以使用命令:echo “-rw-r–r– 1 root root 165 Aug 25 12:51 runAll.sh” | awk -F” ” ‘{print $5}’,其中 awk -F” ” ‘可以省略.。

sed -e  patt 中的patt需要用引号引起来,单引号双引号都行。sed能很方便的将文本中指定字符串替换成另外的字符串,配合其他的命令可以一次性把一个目录下所有文件进行替换操作。例如把文本 “start zhou yang end”替换成“start yang zhou  end”, 即把yang前面的一个单词和与yang换位置,可以使用命令:

echo "start zhou yang end" | sed -e 's/ \(.*\) \(yang\)/ \2 \1/g'

。命令:

grep "114.87.189.33"  * -R | awk -F: '{print $1}' |sort |uniq | xargs sed -i "s/114.87.189.33/214.187.189.33/g"

则会把当前目录下所有文件的114.87.189.33替换成214.187.189.33。注意sed的patt里很多符号需要转义的,比喻()等,g表示替换全部。

关于sed,awk的用户可以参看 linux下监控网卡流量的shell脚本 中的用法。

另外在shell中把命令的输出结果存放在一个变量可以用以下两种方式

1,$var = `cmd`

2,  $var = $(cmd)



欢迎转载,转载请注明文章出处,谢谢!
垃圾有点差凑合看还不错很精彩 (还没有人进行评分)
Loading...Loading...
分类: Linux 标签: , ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.

无觅相关文章插件,快速提升流量