假设文档内容如下:

[root@localhost ~]# cat /tmp/input.txt
null test

要求:在1111之前添加AAA,方法如下:

sed -i 's/指定的字符/要插入的字符&/'  文件

[root@localhost ~]# sed -i  's/1111/AAA&/' /tmp/input.txt
[root@localhost ~]# cat /tmp/input.txt
null
0000AAA11112222 test

 要求:在1111之后添加BBB,方法如下:

sed -i 's/指定的字符/&要插入的字符/'  文件

[root@localhost ~]# sed -i  's/1111/&BBB/' /tmp/input.txt
[root@localhost ~]# cat /tmp/input.txt
null
0000AAA1111BBB2222 test

要求:(1) 删除所有空行;(2) 一行中,如果包含"1111",则在"1111"前面插入"AAA",在"11111"后面插入"BBB"

[root@localhost ~]# sed '/^$/d;s/1111/AAA&/;s/1111/&BBB/' /tmp/input.txt
null
0000BBB1111AAA2222
test

 要求:在每行的头添加字符,比如"HEAD",命令如下:

[root@localhost ~]# sed -i 's/^/HEAD&/' /tmp/input.txt
[root@localhost ~]# cat /tmp/input.txt
HEADnull
HEAD000011112222
HEAD
HEADtest

 要求:在每行的尾部添加字符,比如"tail",命令如下:

[root@localhost ~]# sed -i 's/$/&tail/' /tmp/input.txt
[root@localhost ~]# cat /tmp/input.txt
HEADnulltail
HEAD000011112222tail
HEADtail
HEADtesttail

说明:
1."^"代表行首,"$"代表行尾
2.'s/$/&tail/g'中的字符g代表每行出现的字符全部替换,如果想在特定字符处添加,g就有用了,否则只会替换每行第一个,而不继续往后找。

ubuntu@ubuntu-vm:/work/sva/sva-repo$ echo "   <exec>bin/adc</exec>   " | sed 's/.*<.*>\(.*\)<.*>.*/\1/'
bin/adc

s/^..*/\1/g是正则表达式的替换 s/A/B/ 就是A替换B,而A是^..*(^表示行首,和是有特殊用途的,表示把括号中的内容剔除出来,会一次放到\1 \2 \3这些变量中的,若果有多个括号的话,和中见的.表示匹配任意一个字符),这样通过sed 's/^..*/\1/g'内容变成了

提取字符串

现在有如下一串字符串:
"asdfkjasldjkf"shiner"df

需求:
需要提取出shiner子字符串。

命令如下:
[root@localhost /]$ echo "asdfkjasldjkf\"shiner\"df" | sed 's/\(.*\)"\(.*\)"\(.*\)/\2/g'
shiner

命令解释
s: 表示替换命令
\(.*\)" : 表示第一个引号前的内容
"\(.*\)":表示两引号之间的内容
)"\(.*\):表示引号后的内容
\2: 表示第二对括号里面的内容
括号里的表达式匹配的内容,可以用\1,\2等进行引用,第n个括号对内的内容,就用\n引用。

这个命令的意思是:
用\2代表的第二个括号的内容(shiner)去替换整个字符串,这样就得到了我们所需要的子字符串了。

那么就能获取到了18.08。

最新文章

  1. 在.NET Core中遭遇循环依赖问题&quot;A circular dependency was detected&quot;
  2. Data Flow的Error Output
  3. 使用ASP.NET WEB API构建基于REST风格的服务实战系列教程(一)——使用EF6构建数据库及模型
  4. 每日英语:What To Expect To Wear When You&#39;re Expecting
  5. Android基础之项目结构分析
  6. 通过.htaccess文件让Magento加速
  7. this web application instance has been stopped already解决办法
  8. 声明式编程思想和EEPlat
  9. CODEFORCES-PROBLEMSET
  10. iOS 创建一个在退出登录时可以销毁的单例
  11. eclipse -解决Unhandled event loop exception GC overhead limit exceeded
  12. Java学习笔记48(DBUtils工具类一)
  13. 洛谷 P2420 让我们异或吧 解题报告
  14. eclipse再见,android studio 新手新手教程(一)基本设置
  15. 使用路径arc
  16. RHCSA day5
  17. leetcode674
  18. SPOJ QTREE6
  19. 【BZOJ2882】工艺 [SAM]
  20. Piggy-Bank(多重背包+一维和二维通过方式)

热门文章

  1. Jmeter断言、参数化及集合点
  2. org.apache.spark.launcher.Main源码分析
  3. Java进阶知识点: 枚举值
  4. 【Linux】Face Recognition的封装
  5. opencv-学习笔记(1)常用函数和方法。
  6. parity 注记词
  7. 2019-1-7Xiaomi Mi5 刷全球版MIUI教程
  8. python 项目配置虚拟环境
  9. 福大软工1816:Alpha(5/10)
  10. css深入理解之 border