sed行處理詳解 交換行,合併行,刪除行等

2022-08-28 13:21:12 字數 2579 閱讀 7438

1.合併行

zj@zj:~/script/blog_script$ cat test112

34合併上下兩行

zj@zj:~/script/blog_script$ sed '$!n;s/\n/\t/' test1

1    2

3    4

合併匹配模式及其下一行

zj@zj:~/script/blog_script$ sed '/2/' test1

12    3

4合併所有行

zj@zj:~/script/blog_script$ sed ':a;n;s/\n/\t/;ba;' test1

1    2    3    4

2.交換行

2.1已知行號時交換兩行

這裡是交換1,4行.當然你可以根據自己需要修改

連續時好說:

2.2不知道行號

要交換的兩行是連續行的情況下:

ps:交換包含bai與microsoft的行

兩行不連續的情況:

ps:交換含有baidu與google的行

研究了下寫了個不論連續不連續的都可以的:

ps:上面**

/baidu/  遇到含有baidu的行,開始做{}中的命令序列

:a;n;/google/!ba  迴圈讀資訊,直到讀取google.

/[^\n]*baidu[^\n]*\n[^\n]*google[^\n]*$/這個就是說如果哦baidu與google之間只有乙個\n,即這兩個是連續行就:交換這兩行

如果不匹配上面的模式就是說不是連續行了.

s/\([^\n]*\)\n\(.*\)\n\(.*\)/\3\n\2\n\1/}

而在匹配連續行的情況下是不可能匹配上面表示式的.ok~~~~

3.忘了還有互動奇偶行

4.刪除行就不用說了吧

d嘍....

5.刪除空行

sed '/^$/d' test2

刪除多個空行為乙個空行

sed '/^$/' test2

sed 刪除某一行 sed刪除指定行

待處理文字如1 8行文字 cata1 sed刪除連續指定行 如1 4行 sed 1,4d a5 sed刪除不連續指定行 如第一行和第三行 sed e 1d e 3d a2 乙個例子 我有乙個list檔案如下 cat list unknown other 2 檔名,我要從檔案裡抓取一些資訊,下同,發現...

sed刪除指定行

待處理文字如1 8行文字 cata 1 2345678 sed刪除連續指定行 如1 4行 sed 1,4d a 5678 sed刪除不連續指定行 如第一行和第三行 sed e 1d e 3d a245678 乙個例子 我有乙個list檔案如下 cat list unknown other 2 檔名,...

sed在指定行插入新行

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