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

歡迎訪問 生活随笔!

生活随笔

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

linux

Linux 文本替换 字符串替换 221012笔记

發布時間:2023/12/8 linux 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux 文本替换 字符串替换 221012笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Linux 文本替換 字符串替換

用 sed 命令進行文本字符串替換

公式 sed s/被替換/替換/g 或 sed -e s/被替換/替換/g 或 sed --expression s/被替換/替換/g 或 sed --expression=s/被替換/替換/g

  • g 表示全局, 沒有則只替換第一個,
    也可以用數字,表示第幾個, s/a/b/2將第2個a換成b

  • 可加單雙引號或不加 sed "s/被替換/替換/g" 或 sed 's/被替換/替換/g'
    在有特殊字符時,必須加單雙引號
    例如

    • 在有 空格或;分號等情況下,要加用 單'或雙" 引號
    • 在有$等字符的情況下, 必須,只能加 ' 單引號
  • 可加-e空格 或--expression空格 或 -expression=不加空格
    例如替換所有 a 為 B
    sed s/a/B/g等效 sed 's/a/B/g'等效 sed "s/a/B/g"
    等效 sed -e s/a/B/g 等效 sed --expression s/a/B/g等效 sed --expression=s/a/B/g
    等效 sed -e 's/a/B/g' 等效 sed --expression "s/a/B/g"等效 sed --expression='s/a/B/g'

  • 如果有多個腳本(expression/scripts), 則必須加-e或--expression 或者用大括號(花括號){}包裹,以分號分隔
    例如先將 a換b, 再 b換c , c換d , d換e , e換E , E換D , D換C , C換B , B換A
    sed -e s/a/b/g -e "s/b/c/g" -e 's/c/d/g' -e s/d/e/g --expression s/e/E/g --expression "s/E/D/g" --expression 's/D/C/g' --expression=s/C/B/g --expression='s/B/A/g'
    測試

    echo aaaaaaaaa | sed -e s/a/b/g -e "s/b/c/g" -e 's/c/d/g' -e s/d/e/g --expression s/e/E/g --expression "s/E/D/g" --expression 's/D/C/g' --expression=s/C/B/g --expression='s/B/A/g' echo aaaaaaaaa | sed '{s/a/b/g; ; ; ; ;s/b/c/g;s/c/d/g;s/d/e/g;;;s/e/E/g;;s/E/D/g;;s/D/C/g;s/C/B/g;s/B/A/g; }'

    如果不帶g則只替換第一個

    echo aaaaaaaaa | sed -e s/a/b/ -e "s/b/c/" -e 's/c/d/' -e s/d/e/ --expression s/e/E/ --expression "s/E/D/" --expression 's/D/C/' --expression=s/C/B/ --expression='s/B/A/'
  • 要想刪除指定字符串的話, 就將替換內容設為空
    例如:
    刪除所有 abc : sed s/abc//g

    echo abcabcabcdefg | sed s/abc//g

    刪除第一個 abc : sed s/abc//

    echo abcabcabcdefg | sed s/abc//
  • 大括號{}(花括號) 用來包裹多個命令,用分號;分隔 {命令1;命令2;命令3;...}

    • 當大括號內只有一個命令時, 可以不加引號
    • 當大括號內有多個命令,用分號;分隔時, 必須加 單或雙 引號echo aaa | sed "{s/a/A/;s/aa/B/}" # 得到 AB 也可有空格echo aaa | sed " { s/a/A/ ; s/aa/B/ } " # 得到 AB echo aaaaaaaaa | sed '{s/a/b/g; ; ; ; ;s/b/c/g;s/c/d/g;s/d/e/g;;;s/e/E/g;;s/E/D/g;;s/D/C/g;s/C/B/g;s/B/A/g; }'
用sed修改來自文件的內容

公式: sed s/被替換/替換/g 文件 , 文件必須放在最后
例如: 替換來自文件中的 aaa 變 BBB

sudo sed s/aaa/BBB/g 文件或 sudo sed "s/aaa/BBB/g" 文件或 sudo sed -e s/aaa/BBB/g 文件或 sudo sed --expression s/aaa/BBB/g 文件或 sudo sed --expression=s/aaa/BBB/g 文件或 sudo sed --expression="s/aaa/BBB/g" 文件或 sudo sed --expression='s/aaa/BBB/g' 文件也可以用管道 sudo cat 文件 | sudo sed --expression='s/aaa/BBB/g' sudo cat 文件 | sudo sed --expression 's/aaa/BBB/g' sudo cat 文件 | sudo sed --e 's/aaa/BBB/g' sudo cat 文件 | sudo sed 's/aaa/BBB/g' sudo cat 文件 | sudo sed s/aaa/BBB/g

加 -i 或 --in-place 選項, 就會對文件進行修改

-i[SUFFIX], --in-place[=SUFFIX]
-i 或 --in-place 選項后如果有后綴, 就會以文件名加后綴給文件做個備份, 再修改
-i與后綴緊連,沒有空格, 如-i.bak
--in-place 與后綴通過等號=連接 , 如 --in-place=.bak

printf "aaa\n" > 文件; cat 文件; sudo sed 's/aaa/bbb/' "文件" -i ; cat 文件; sudo sed 's/bbb/ccc/' 文件 --in-place ; cat "文件"; sudo sed 's/ccc/ddd/' 文件 -i.bak1; cat 文件; sudo sed 's/ddd/eee/' "文件" --in-place=.bak2; cat "文件";
用sed修改來自變量的內容

echo默認會加換行, 加上-n,可不換行 , 也可以用printf
-echo $變量屏幕輸出時,會將連續空格合并為一個, 可以用echo "$變量"原樣輸出
printf $變量輸出時,變空格會變成參數分隔, 所以加雙引號 printf "$變量"

v=`printf "$v" | sed s/待替換內容/替換內容/g`v=$(printf "$v" | sed s/待替換內容/替換內容/g)v=$(echo -n "$v" | sed s/待替換內容/替換內容/g)

例子:

v='hello World' ; echo "$v";\ v=`echo -n "$v" | sed s/h/H/`; echo "${v}" v='Helloorld' ; echo "$v";\ v=`echo "$v" | sed 's/oo/o Wo/'`; echo "${v}" v='World' ; echo "$v";\ v=`printf "$v" | sed 's/^/Hello /'`; echo "${v}" v='Hello' ; echo "$v";\ v=`printf "$v" | sed 's/$/ World/'`; printf "${v}\n" v='Hello' ; echo "$v";\ v=`printf "$v" | sed 's/$/\ \ \ \ \ \ World/'`; printf "${v}\n" v='H o W d' ; echo "$v";\ v=`printf "$v" | sed '{s/ /ell/ ; s/ /orl/}'`; printf "${v}\n" v='H o W d' ; echo "$v";\ v=`printf "$v" | sed '{\ s/ /l/7 ;\ s/ /r/6 ;\ s/ /o/5 ;\ s/ /l/3;\ s/ /l/2;\ s/ /e/1;\ }'`; printf "${v}\n"
例如移除環境變量PATH中的指定字符串
export PATH=` printf "$PATH" | sed ' s/:\.//g ' ` ; echo "$PATH"; export PATH=` printf "$PATH" | sed ' s/:\/MyBashs//g ' ` ; echo "$PATH";

總結

以上是生活随笔為你收集整理的Linux 文本替换 字符串替换 221012笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 乱淫67194| 日鲁鲁| 亚洲精品推荐 | 国产又粗又猛又爽又黄的 | 久久av无码精品人妻系列试探 | 全部免费毛片在线播放一个 | 青青草华人在线 | 天天5g天天看 | 中日韩av电影 | 五月天综合激情网 | 冲田杏梨av| 久久国产99 | 国产黄在线免费观看 | 久久无码专区国产精品s | 国产人妖一区 | 在线看片中文字幕 | 日韩福利网站 | 国产东北真实交换多p免视频 | 亚洲超碰在线 | 伊人久久综合影院 | 8x8ⅹ国产精品一区二区 | 干干天天 | 国产20页 | 欧美精选一区二区 | 欧美成年视频 | 一级久久久久 | 色香影视| 婷婷影院在线观看 | 黄色网占 | 国产偷人妻精品一区二区在线 | 少妇性l交大片免潘金莲 | 九九精品在线播放 | 久久国产秒 | 欧美日韩精品三区 | 久久久久看片 | 免费av毛片| 日韩理论在线 | 91精品国产综合久久久久久 | 久草视频精品 | 精品三区视频 | 黄色免费在线看 | 日韩城人网站 | 夜夜夜夜操 | 久久国产免费看 | 久久91久久 | 亚洲欧美激情图片 | 国产精品3区 | 男人都懂的网站 | 手机av在线播放 | 国产又大又粗又长 | 亚洲精品无码一区二区 | 日韩欧美综合在线 | 韩国三级在线看 | 一本色道久久hezyo无码 | 少女与动物高清版在线观看 | 大地资源二中文在线影视免费观看 | 欧美日韩国产三区 | 色狠狠干| 在线不卡视频 | 少妇久久久久久 | 天天干狠狠插 | 在线视频观看一区二区 | 久久国产在线观看 | 精品伦精品一区二区三区视频密桃 | 一级久久| 国产一区二区三区播放 | 亚洲黄色影视 | 亚洲成人av免费 | 日韩精品视频一区二区三区 | 色花av| 丰满的人妻hd高清日本 | 国产精品视频一区二区三 | 日韩精品一线二线三线 | 91亚洲精品视频 | 青娱乐免费在线视频 | 日韩免费视频一区二区视频在线观看 | 阿拉伯性视频xxxx | 国产精品久久国产愉拍 | xxx久久 | 制服丝袜在线播放 | 97国产视频| 国产视频999 | 成人免费看片网站 | 日韩中文在线观看 | 欧美视频一二三 | 成人免费毛片xxx | 丝袜性爱视频 | 在线观看成年人网站 | 欧美性生活免费视频 | www精品视频 | 美女被出白浆 | 青青草原成人 | 色黄大色黄女片免费中国 | 有码在线视频 | 精品婷婷色一区二区三区蜜桃 | 全部免费毛片在线播放高潮 | 日本精品黄色 | 揄拍成人国产精品视频 | 日韩综合|