sed 命令小结
sed:過濾和轉換的文本編輯器,主要是針對行的編輯,一次只能一行
??????? 用法:sed 【option】 {script} filename
??????? 參數:
???????????????? -n:取消默認輸出
???????????????? -e:用于多重編輯
???????????????? -i:用于改變替換的內容
???????????????? -f :直接將 sed 的動作寫在一個文件內, -f filename 則可以運行 filename 內的 sed 動作
???????????????? -r :sed 的動作支持的是延伸型正規表示法的語法。(默認是基礎正規表示法語法)
???????????????? s:是替換
???????????????? g:是全部替換
???????????????? p:打印輸出
???????????????? d:是刪除指定,剩余輸出
???????? 例子:使用seq或者echo輸出一個1-30的文件
???????????????? # seq 1 30 >sed.txt
?????????????? ? # echo {1..30}|tr " " "\n">sed.txt
刪除:
???????????????? # sed '1d' sed.txt?? 刪除第一行
???????????????? # sed '$d' sed.txt?? 刪除最后一行
???????????????? # sed '1,5d' sed.txt 刪除第一到第五行
顯示:
???????????????? # sed -n '1p' sed.txt?? 顯示第一行
???????????????? # sed -n '$p' sed.txt?? 顯示最后一行
???????????????? # sed -n '1,5p' sed.txt 顯示第一到第五行
顯示查找行:
???????????????? # sed -n '/^2/p' sed.txt? 以2開頭的行
???????????????? # sed -n '/2$/p' sed.txt? 以2結尾的行
???????????????? # sed -n '/2/p' sed.txt?? 包含2的行
替換:
???????????????? # sed -i 's/2/1/g' sed.txt???? 將所有的2替換成1
???????????????? # sed -i '10s/10/11/g' sed.txt 指定第10行替換
**使用sed取出網卡的IP地址
????????? # ifconfig eth0|sed -n 2p|sed 's/^.*dr://g'|sed 's/Bc.*$//g'? 這里是先取前部分,再取后部分
????????? # ifconfig eth0|sed -n 2p|sed -n 's#^.*dr:\(.*\)Bca.*$#\1#gp' 這里的括號必須轉義
**使用find+sed替換所有的文件:
????????? # find . -type f exec sed -i 's/2/1/g' {} \;
????????? # find . -type f | xargs sed -i 's/2/1/g' ;
轉載于:https://blog.51cto.com/eveday/1690216
總結
- 上一篇: iOS进阶(数据库之SQLite)
- 下一篇: POJ 2184 Cow Exhibit