zoukankan      html  css  js  c++  java
  • sed和awk的一些使用【转载自http://blog.sina.com.cn/s/blog_6561ca8c0102we0o.html】

    在linux中,awk和sed命令对于快速的文本编排非常灵活有用。对文本插入列的操作也可以使用sed或者awk命令来处理,下面简单介绍:

    如果想要在指定列前插入字符串RR,可以使用以下命令:
    awk '{$NF="RR"$NF; print}'  filename
    这里的$NF可以替换成任意的列数,RR字符串可以替换成任意多列字符串

    如果想要在指定行的某一列前插入字符串RR,可以使用以下命令:
    awk 'NR==row{$NF="RR"$NF; print}'  filename
    这里的row可以替换成任意行

    还有另外一种awk的命令方式也可以用来插入指定字符串
    假设有文件data里面的内容为
        1 2 3 4 5
        6 7 8 9 10


    想在文件开始插入两个字符串 hello world使用awk实现如下:
    awk 'BEGIN{a="hello";b="world";}{printf("%s %s",a,b);}{for(c=1;c<=NF;c++){printf(" %s ", $c);} printf(" ")}' data

    运行后data文件变为
    hello world 1 2  3  4 5
    hello world 6  7  8 9 10


    若只是想在文件开始或者结尾插入一字符串,采用sed更容易实现
    sed  's/^/hello world &/g' data
    sed 's/$/& hello world/g' data
    这里的两行命令分别在文件的每一行行首或行尾插入字符串hello world
    这里的命令执行之后,结果会打印在终端屏幕上,如果想要将结果导入其他文件,可以在命令后面加上">文件名",如果想直接在文件中修改,可在前面加上i选项:
    sed -i 's/^/hello world &/g' data
    sed -i 's/$/& hello world/g' data

    我们还可以把两条命令放在一起使用:
    sed '/./{s/^/HEAD&/;s/$/&TAIL/}' data

  • 相关阅读:
    念大学有用么摘抄
    天行健,君子以自强不息;地势坤,君子以厚德载物。
    加快播放视频的播放速度
    微信语音通话中无法播放聊天对话框中的视频
    劝学
    在这个世界上就是物竞天择,适者生存。弱肉强食,优胜劣汰?
    英语名言名句集锦
    贵州理科状元邹基伟:不放过上课的每一秒
    带宽的理解
    第二章 Python运行程序
  • 原文地址:https://www.cnblogs.com/Raymontian/p/7054941.html
Copyright © 2011-2022 走看看