linux 三剑客--sed[行式编辑]

本文介绍SED命令的高级使用技巧,包括后项引用的应用场景及示例,并覆盖SED的基础操作如增删改查等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sed 高级使用:后项引用&,\1

[root@localhost ~]# echo 192.168.56.10 |sed -E  's@([0-9]+\.)([0-9]+)@xx.xx@'
xx.xx.56.10
[root@localhost ~]# echo 192.168.56.10 |sed -E  's@([0-9]+\.)([0-9]+)@xx.\2@'
xx.168.56.10

[root@eoi0002 ~]# cat /tmp/123 
FILE202215739
FILE202215757
FILE202215906
FILE202215547
[root@eoi0002 ~]# sed -E 's@([A-Z]{4}[0-9]{4})([0-9]{3})@\1***@' /tmp/123 
FILE2022***39
FILE2022***57
FILE2022***06
FILE2022***47
#1, 后项引用&: 案例 (hbaes批量建表)
[test@host1 ~]$ cat a.sh 
#!/bin/bash
tables=(t1 t2)
for i in ${tables[*]}
do
 tab=$i
 echo "create '$tab', {NAME=>'f', COMPRESSION=>'LZ4', DATA_BLOCK_ENCODING=>'FAST_DIFF'},{SPLITS=>['A','B']}"
done

[test@host1 ~]$ sh a.sh
create 't1', {NAME=>'f', COMPRESSION=>'LZ4', DATA_BLOCK_ENCODING=>'FAST_DIFF'},{SPLITS=>['A','B']}
create 't2', {NAME=>'f', COMPRESSION=>'LZ4', DATA_BLOCK_ENCODING=>'FAST_DIFF'},{SPLITS=>['A','B']}

#########################
[test@host1 ~]$ echo t1 t2  |xargs -n1 |sed 's/.*/create "&", {NAME=>"f", COMPRESSION=>"LZ4", DATA_BLOCK_ENCODING=>"FAST_DIFF"}, {SPLITS => ["A","B"]}/' |sed "s/\"/'/g"
create 't1', {NAME=>'f', COMPRESSION=>'LZ4', DATA_BLOCK_ENCODING=>'FAST_DIFF'}, {SPLITS => ['A','B']}
create 't2', {NAME=>'f', COMPRESSION=>'LZ4', DATA_BLOCK_ENCODING=>'FAST_DIFF'}, {SPLITS => ['A','B']}


#2, 后项引用\1,\2: 案例 (文件重命名)
[root@docker ~]# ls
1.txt  2.txt  3.txt  h
[root@docker ~]# rename  .txt .jpg *.txt
[root@docker ~]# ls
1.jpg  2.jpg  3.jpg  

#########################
[root@docker ~]# ls *.txt 
1.txt  2.txt  3.txt
[root@docker ~]# ls *.txt |sed -r 's@(.*)\.txt@\1.jpg@'
1.jpg
2.jpg
3.jpg

sed 基础: 单个文件:增删改查

                  单个文件:复制粘贴

                  多个文件:导入/导出新文件

1,增加: 在指定行前/后增加

在某行前插入:ni    [insert]

在某行后追加:na    [append] 

  • 2,删除: 删除一行/多行

删除某行

删除多行: 第1行,第3行

删除1-3连续行:

删除空行

  • 3,修改: 修改一行的单个字符:

替换整行、多行  nc   [change]

替换某行的单个字符

 注释掉某行/多行: 修改操作:添加#

 在行首添加或行尾添加

=============sed 使得增删改:立即生效  -i ============

  • 4,查看: 查看某行/多行     奇数行/偶数行

5,单个文件内部内容移动:H复制 +d删除 + G粘贴=剪切到...

6,导入新文件

7,导出新文件

 sed   ,  grep  , awk :   用法对比

正则匹配单个字符

正则匹配多个字符:任意数字[0-9]

正则匹配多个字符: 任意字符.

awk :   查看xml文件内容

 egrep  '^[[:space:]]*</?[a-z]+' /etc/clickhouse-server/config.xml 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

根哥的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值