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