日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

打开高效文本编辑之门_Linux Sed插入追加转换退出等命令应用

發布時間:2024/9/27 linux 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 打开高效文本编辑之门_Linux Sed插入追加转换退出等命令应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ? ? ? ? ? ? ? ? ? ? ?Linux sed 追加轉換退出更新修改轉換命令使用案例

聲明與簡介

sed:Stream Editor文本流編輯,sed是一個“非交互式的”面向字符流的編輯器。

sed其它命令匯總主要涉及i(insert)插入、a(append)追加、c(change)更新、l隱藏字符、=等號、q(quit)退出執行、y轉換、r(read)讀等命令。命令的詳細使用說明見下文。

本文主要以實際的數據來介紹sed的substitude(替換)即s命令的使用。

數據說明

如下是使用的示例文本數據,這里的行號是為了方便解釋結果,不是文本內容。

1 7369,smith,clerk,7902,'1980-12-17',800,null,20 2 7499,allen,salesman,7698,'1981-2-20',1600,300,30 3 7521,ward,salesman,7698,'1981-2-22',1250,500,30 4 7566,jones,manager,7839,'1981-4-2',2975,null,20 5 7654,martin,salesman,7698,'1981-9-28',1250,1400,30 6 7655,jack,manager,7698,'1987-3-28',1600,1800,10 7 7656,tim,clerk,7902,'1982-12-12',1400,1400,30 8 7657,kate,clerk,7902,'1989-11-11',1400,1800,10 9 7698,blake,manager,7839,'1981-5-1',2850,null,30 10 7699,dlake,salesman,7839,'1983-6-15',3000,null,10 11 7782,clark,manager,7839,'1981-1-9',2450,null,10 12 7788,scott,analyst,7566,'1982-12-9,3000,null,20,scott 13 7839,king,president,null,'1981-11-17',5000,null,10 14 7844,turner,salesman,7698,'1981-12-8',1500,0,30 15 7876,adams,clerk,7788,'1983-1-12',1100,null,20 16 7900,james,clerk,7698,'1981-12-3',950,null,30 17 18 --7902,ford,analyst,7566,'1981-12-3',3000,null,20 19 20 7934,miller,clerk,7782,'1982-1-23',1300,null,10

插入命令

在某行前插入

# 1在第2行前插入一行新的內容。 sed '2 i well new content' emp.txt# 結果 7369,smith,clerk,7902,'1980-12-17',800,null,20 well new content 7499,allen,salesman,7698,'1981-2-20',1600,300,30#注:1 這里也支持插入\n即換行符。 #? ? 2 這里的i即是insert。

追加命令

在某行后插入

# 1 在第2行后插入一行新的內容。。 sed '2 a well new content\n' emp.txt# 部分數據,最后有個換行符。 7369,smith,clerk,7902,'1980-12-17',800,null,20 7499,allen,salesman,7698,'1981-2-20',1600,300,30 well new content#注:1 這里的a即是append。

在文末插入內容

# 2 在文件的最后一行追加一行內容,插入類似(換成i)sed '$ a well new content\n' emp.txt#注: 在文件第一行插入不可以用^匹配,可以用如下命令(指定行號為1):sed '1 i well new content\n' emp.txt

插入多行記錄

# 3 在第一行前兩行內容。這里也可以是i,即在行號前插入。 sed '1 a well new content\ line2' emp.txt# 注: 這里需要換行輸入,而不能合并成一行。

更新命令

對應行更新

# 1 對指第2行做內容的更新 sed '2 c well new content' emp.txt # 結果 7369,smith,clerk,7902,'1980-12-17',800,null,20 well new content#注:更新命令一般是結合-i命令(修改源文件章節)一起使用。

匹配關鍵字行更新

# 2 匹配到scott關鍵字并將該行用新的內容更新。 sed '/scott/ c well new content' emp.txt# 數據,未顯示全部 7782,clark,manager,7839,'1981-1-9',2450,null,10 well new content 7839,king,president,null,'1981-11-17',5000,null,10# 原始數據 7782,clark,manager,7839,'1981-1-9',2450,null,10 7788,scott,analyst,7566,'1982-12-9,3000,null,20,scott 7839,king,president,null,'1981-11-17',5000,null,10

插入追加更新結合使用

# 3 對匹配到scott的行同時實施插入、追加、更新操作。 sed '/scott/{ a\ append record i\ insert record c\ chang record }' emp.txt

修改源文件

直接修改源文件

# 1 用關鍵字TTOCC替換scott并直接作用原始文件emp.txt sed -i 's/scott/TTOCC/' emp.txt# 查看文件是否已更新 cat emp.txt | grep TTOCC# 可見emp.txt內容已經更新 7788,TTOCC,analyst,7566,'1982-12-9',3000,null,20

等寬度截斷

# 2 該方式是對隱藏字符的擴展,即對每行按照指定的長度(20個)進行截取,以“\”顯示,行內容長度不足的以$顯示。 sed -n 'l 20' emp.txt# 示例數據 7369,smith,clerk,79\ 02,'1980-12-17',800\ ,null,20$ 7499,allen,salesman\ ,7698,'1981-2-20',1\ 600,300,30$#原始數據(部分) 7369,smith,clerk,7902,'1980-12-17',800,null,20 7499,allen,salesman,7698,'1981-2-20',1600,300,30

等于命令

打印行號

# 打印文件內容的行號,注意行號每行占一行。 sed = emp.txt#結果,( 示例數據) 1 7369,smith,clerk,7902,'1980-12-17',800,null,20 2 7499,allen,salesman,7698,'1981-2-20',1600,300,30 3 7521,ward,salesman,7698,'1981-2-22',1250,500,30

指定范圍打印行號

#僅僅對第3和5行打印行號,其它的行不做處理(正常顯示文件內容)。 sed '3,5 =' emp.txt# 結果,(示例數據) 7369,smith,clerk,7902,'1980-12-17',800,null,20 7499,allen,salesman,7698,'1981-2-20',1600,300,30 3 7521,ward,salesman,7698,'1981-2-22',1250,500,30 4 7566,jones,manager,7839,'1981-4-2',2975,null,20 5 7654,martin,salesman,7698,'1981-9-28',1250,1400,30 7655,jack,manager,7698,'1987-3-28',1600,1800,10

匹配到關鍵字的行打印行號

#匹配到關鍵字”scott”的行打印行號,其它的行不做處理(正常顯示文件內容)。 sed '/scott/ =' emp.txt# 結果,(示例數據) 7782,clark,manager,7839,'1981-1-9',2450,null,10 12 7788,scott,analyst,7566,'1982-12-9,3000,null,20,scott 7839,king,president,null,'1981-11-17',5000,null,10

打印文件總行數

#結合打印行號和之前sed的相關功能,不能發現可通過$結合=計算出文件的總行數。 sed -n '$ =' emp.txt#結果 20

轉換命令

字符轉換

#這里的y命令相當于對字符進行對應的轉換,比如這里的s轉成D、s轉出V。這里類似translate函數。 sed 'y/sc/DV/' emp.txt# 結果,轉換后的示例數據 7788,DVott,analyDt,7566,'1982-12-9,3000,null,20,DVott#原始數據里是scott 7788,scott,analyst,7566,'1982-12-9,3000,null,20,scott

多文件操作命令

多文件一起執行

# 同時匹配兩個文件里的manager關鍵字。 sed -n '/manager/p' employee.txt emp.txt

退出執行命令

顯示文件第一行退出

# 通過q命令只顯示文件的第一行,即只到第1行就退出了執行。 sed 'q' emp.txt#結果 7566,jones,manager,7839,'1981-4-2',2975,null,20# head命令對比 head -1 emp.txt#結果 7566,jones,manager,7839,'1981-4-2',2975,null,20#當然也可以通過P命令顯示第一行 sed -n '1 p' emp.txt

執行到指定行后退出

#通過q命令只顯示文件的第一行,即從第1行顯示到第5行就退出了執行。 sed '5 q' emp.txt#結果 7369,smith,clerk,7902,'1980-12-17',800,null,20 7499,allen,salesman,7698,'1981-2-20',1600,300,30 7521,ward,salesman,7698,'1981-2-22',1250,500,30 7566,jones,manager,7839,'1981-4-2',2975,null,20 7654,martin,salesman,7698,'1981-9-28',1250,1400,30# 指定范圍行退出執行僅支持單行號,如果指定行首和行尾兩個參數則報錯。詳見下: #sed '7,12 q' emp.txt sed: -e expression #1, char 6: command only uses one address

匹配關鍵字后退出執行

#首次匹配到manager后退出執行。 sed '/manager/q' emp.txt# 執行結果 7369,smith,clerk,7902,'1980-12-17',800,null,20 7499,allen,salesman,7698,'1981-2-20',1600,300,30 7521,ward,salesman,7698,'1981-2-22',1250,500,30 7566,jones,manager,7839,'1981-4-2',2975,null,20

讀命令

讀文件追加內容

# 讀取文件file_tmp.txt的內容追加到emp.txt之后 sed '$ r file_tmp.txt' emp.txt

讀文件匹配關鍵字后追加內容

# emp.txt里匹配到關鍵字manager之后插入文件file_tmp.txt的內容 sed -n '/manager/ r file_tmp.txt' emp.txt# 結果,部分示例內容 7655,jack,manager,7698,'1987-3-28',1600,1800,10 /usr/apps/bin:/usr/local/bin:/root/ /usr/local/sbin:/usr/apps/sbin:/opt/bin 7656,tim,clerk,7902,'1982-12-12',1400,1400,30 7657,kate,clerk,7902,'1989-11-11',1400,1800,10 7698,blake,manager,7839,'1981-5-1',2850,null,30 /usr/apps/bin:/usr/local/bin:/root/ /usr/local/sbin:/usr/apps/sbin:/opt/bin 7699,dlake,salesman,7839,'1983-6-15',3000,null,10

?

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的打开高效文本编辑之门_Linux Sed插入追加转换退出等命令应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。