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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

打开高效文本编辑之门_调用Linux的sed命令

發(fā)布時(shí)間:2024/9/27 linux 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 打开高效文本编辑之门_调用Linux的sed命令 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? ? ? ? ? ? ? ? ? ? ? ? ? ? Linux sed命令執(zhí)行方式匯總案例

聲明與簡介

sed:Stream Editor文本流編輯,sed是一個(gè)“非交互式的”面向字符流的編輯器。Sed的命令執(zhí)行主要介紹如何引用sed腳本內(nèi)容或者執(zhí)行內(nèi)置sed解釋器的腳本,命令執(zhí)行的詳細(xì)使用說明見下文。本文主要以實(shí)際的數(shù)據(jù)來介紹sed的命令行執(zhí)行方式。

數(shù)據(jù)說明

如下是使用的示例文本數(shù)據(jù),這里的行號是為了方便解釋結(jié)果,不是文本內(nèi)容。

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

命令行執(zhí)行

單行執(zhí)行多條命令

# 1 找出含有scoot、james、martin的行 sed -n -e '/scott/p' -e '/james/p' -e '/martin/p' emp.txt# 執(zhí)行結(jié)果 7654,martin,salesman,7698,'1981-9-28',1250,1400,30 7788,scott,analyst,7566,'1982-12-9',3000,null,20 7900,james,clerk,7698,'1981-12-3',950,null,30#注: 這里加了-n,即只顯示受影響的行。

反斜杠執(zhí)行多行多條命令

# 2 通過反斜杠的方式將多個(gè)命令羅列在一起串聯(lián)執(zhí)行。 sed -n -e '/scott/p' \ -e '/james/p' \ -e '/martin/p' \ emp.txt# 結(jié)果 7654,martin,salesman,7698,'1981-9-28',1250,1400,30 7788,scott,analyst,7566,'1982-12-9',3000,null,20 7900,james,clerk,7698,'1981-12-3',950,null,30#注:多行執(zhí)行需要加上”\”讓命令換行。

大括號執(zhí)行多行多條命令

# 3 將命令包裹在大括號內(nèi) sed -n '{ /scott/p /james/p /martin/p }' emp.txt#注: 這里的文件名emp.txt不能換行輸出,即需要和“}’”在一行上。

腳本文件僅含處理邏輯

引用腳本文件方式調(diào)用

# 1 定義文件,sed的處理邏輯定義在該文件內(nèi),外部仍已sed來調(diào)用。 # Step 1 創(chuàng)建個(gè)sed腳本文件,這里后綴名不一定是.sed。 vi replace_demo.sed# Step 2 輸入如下內(nèi)容: /scott/p /james/p /martin/p# Step 3 賦予可執(zhí)行權(quán)限 Chmod +x ?replace_demo.sed# Step 4 調(diào)用腳本文件 sed -nf ./replace_demo.sed emp.txt# 結(jié)果如下 7654,martin,salesman,7698,'1981-9-28',1250,1400,30 7788,scott,analyst,7566,'1982-12-9',3000,null,20 7900,james,clerk,7698,'1981-12-3',950,null,30#注:這里調(diào)用時(shí)需要寫 –nf而不是 –fn,即n必須在前。不然會報(bào)錯(cuò)sed: couldn't open file n: No such file or directory

腳本內(nèi)注釋

# sed腳本內(nèi)通過”#”來注釋,針對上例Step2,我們注釋第2行。再次執(zhí)行查看效果 /scott/p #/james/p /martin/p#結(jié)果如下所示,即第二行未執(zhí)行。 7654,martin,salesman,7698,'1981-9-28',1250,1400,30 7788,scott,analyst,7566,'1982-12-9',3000,null,20

腳本文件含解釋器執(zhí)行

腳本文件直接執(zhí)行

#該方式直接調(diào)用腳本文件,無需外部加sed命令,因?yàn)槟_本文件里已經(jīng)內(nèi)置sed解釋器。# Step 1 定義個(gè)sed的腳本文件,比如這里命名為replace_interpreter.sed vi replace_interpreter.sed# Step 2 在replace_interpreter.sed文件里加入如下內(nèi)容 #!/bin/sed -nf /scott/p #/james/p /martin/p# Step 3 給replace_interpreter.sed賦予可執(zhí)行權(quán)限 chmod +x replace_interpreter.sed# Step 4 調(diào)用腳本文件 ./replace_interpreter.sed emp.txt# 結(jié)果如下: 7654,martin,salesman,7698,'1981-9-28',1250,1400,30 7788,scott,analyst,7566,'1982-12-9',3000,null,20

總結(jié)

以上是生活随笔為你收集整理的打开高效文本编辑之门_调用Linux的sed命令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。