linux中sed在指定字元前後新增內容

2022-05-28 16:57:16 字數 4297 閱讀 7805

假設文件內容如下:12

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

null

000011112222

test

要求:在1111之前新增aaa,方法如下:

sed -i 's/指定的字元/要插入的字元&/'  檔案12

3456

[root@localhost ~]# sed -i's/1111/aaa&/'/tmp/input.txt

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

null

0000aaa11112222

test

要求:在1111之後新增bbb,方法如下:

sed -i 's/指定的字元/&要插入的字元/'  檔案12

3456

[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"12

34[root@localhost ~]# sed'/^$/d;s/1111/aaa&/;s/1111/&bbb/'/tmp/input.txt

null

0000bbb1111aaa2222

test

要求:在每行的頭新增字元,比如"head",命令如下:12

3456

[root@localhost ~]# sed -i's/^/head&/'/tmp/input.txt

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

headnull

head000011112222

head

headtest

要求:在每行的尾部新增字元,比如"tail",命令如下:12

3456

[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就有用了,否則只會替換每行第乙個,而不繼續往後找。

實踐是檢驗真理的唯一標準!!

假設文件內容如下:12

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

null

000011112222

test

要求:在1111之前新增aaa,方法如下:

sed -i 's/指定的字元/要插入的字元&/'  檔案12

3456

[root@localhost ~]# sed -i's/1111/aaa&/'/tmp/input.txt

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

null

0000aaa11112222

test

要求:在1111之後新增bbb,方法如下:

sed -i 's/指定的字元/&要插入的字元/'  檔案12

3456

[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"12

34[root@localhost ~]# sed'/^$/d;s/1111/aaa&/;s/1111/&bbb/'/tmp/input.txt

null

0000bbb1111aaa2222

test

要求:在每行的頭新增字元,比如"head",命令如下:12

3456

[root@localhost ~]# sed -i's/^/head&/'/tmp/input.txt

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

headnull

head000011112222

head

headtest

要求:在每行的尾部新增字元,比如"tail",命令如下:12

3456

[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就有用了,否則只會替換每行第乙個,而不繼續往後找。

linux中sed在指定字元前後新增內容

假設文件內容 1 root localhost cat tmp input.txt 2null 3000011112222 45 test 1.要求 在1111之前新增aaa,方法如下 sed i s 指定的字元 要插入的字元 檔案 1 root localhost sed i s 1111 aaa...

sed在指定行插入新行

前些天備份使用mysqldump備份出的資料檔案 insert形式 裡面的內容沒有use db name這個語句,所以如果在指令碼中執行,那麼會提示no database selected,所以就想在裡面新增乙個use db name的語句。但是因為資料檔案太大,如果直接vim開啟恐怕不行。所以想到...

jq 擷取指定字元前 Python中字串的切片

切片方法適用於字串,列表,元組 注意 指定的區間是左開右閉型 從頭開始,開始索引數字可以省略,冒號不能省略 到末尾結束,結束索引數字可以省略,冒號不能省略。步長預設為1,如果連續切片,數字和冒號都可以省略。字串 開始索引 結束索引 步長 str hello world a str 1 print a...