linux学习lesson29

本文详细介绍SED命令在文本处理中的高级应用,包括精确匹配并提取文本片段、转换字符大小写、在特定位置添加文本、以及删除指定行等实用技巧。通过实际案例演示SED的强大功能。

目录

1 复习1


1 复习1

  • 打印某行到某行之间的内容
例如:有个文件test的内容如下:

ert
fff
**
[abcfd]
123
324
444
[rty]
**
fgfgf

怎么能截取

[abcfd]
123
324
444
[rty]

这一部分出来呢?
[root@worker1 test]# sed -n '/\[abcfd\]/, /\[rty\]/'p test.txt
[abcfd]
123
324
444
[rty]

sed转换大小写 

sed中,使用\u表示大写,\l表示小写

  • 1. 把每个单词的第一个小写字母变大写:

sed 's/\b[a-z]/\u&/g' filename   // \b是boundary(边界)的意思,表示单词到此结束

[root@worker1 test]# cat test.txt
ert
fff
**
[abcfd]
123
324
444
[rty]
**
fgfgf
[root@worker1 test]# sed 's/\b[a-z]/\u&/g' test.txt
Ert
Fff
**
[Abcfd]
123
324
444
[Rty]
**
Fgfgf
[root@worker1 test]# sed 's/[a-z]/\u&/' test.txt
Ert
Fff
**
[Abcfd]
123
324
444
[Rty]
**
Fgfgf
  • 2. 把所有小写变大写:

sed 's/[a-z]/\u&/g' filename

[root@worker1 test]# sed 's/[a-z]/\u&/g' test.txt
ERT
FFF
**
[ABCFD]
123
324
444
[RTY]
**
FGFGF
  • 3. 大写变小写:

sed 's/[A-Z]/\l&/g' filename  //小写字母L

[root@worker1 test]# cat test1
ERT
FFF
**
[ABCFD]
123
324
444
[RTY]
**
FGFGF
[root@worker1 test]# sed 's/[A-Z]/\l&/g' test.txt
ert
fff
**
[abcfd]
123
324
444
[rty]
**
fgfgf
  • sed在某一行最后添加一个数字
[root@worker1 test]# cat test2
askdj
aslkd aslkdjf3e
skdjfsdfj
sdkfjk
fsdkfjksdjfkjsdf
12sdfesdf
aslkdjfkasdjf asdlfkjaskdfj
[root@worker1 test]# sed 's/\(^a.*\)/\1 123/' test2
askdj 123
aslkd aslkdjf3e 123
skdjfsdfj
sdkfjk
fsdkfjksdjfkjsdf
12sdfesdf
aslkdjfkasdjf asdlfkjaskdfj 123
  • 删除某行到最后一行 
[root@worker1 test]# cat test3
a
b
c
d
e
f
[root@worker1 test]# sed '/c/{p;:a;N;$!ba;d}' test3
a
b
c
  • 删除某行到下一行
[root@worker1 test]# sed '/c/{N;d}' test3
a
b
e
f
  • 打印1到100行含某个字符串的行 
[root@worker1 test]# cat test2
askdj
aslkd aslkdjf3e
skdjfsdfj
sdkfjk
fsdkfjksdjfkjsdf
12sdfesdf
aslkdjfkasdjf asdlfkjaskdfj
[root@worker1 test]# sed -n '1,100{/a/p}' test2
askdj
aslkd aslkdjf3e
aslkdjfkasdjf asdlfkjaskdfj

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值