目錄
基本語法
實戰(zhàn)例
注意點
基本語法
sed -i "s/oldstring/newstring/g"?`grep oldstring -rl path`?
? ? ? ? -i 表示inplace edit,就地修改文件
? ? ? ? -r 表示遞歸式地搜索子目錄
? ? ? ? -l 表示輸出匹配的文件名
? ? ? ? oldstring:原字符串
? ? ? ? newstring:要替換成為的新字符串
? ? ? ? path:路徑,可以是一個文件路徑,也可以是一個目錄路徑
實戰(zhàn)例
????????在myfolder有兩組字符串需要替換:
????????(1)?RTSEL(2'b01) -->?RTSEL(2'b00);
????????(2) WTSEL(2'b01) --> WTSEL(2'b00);
????????首先,查詢一下RTSEL的存在狀況:
>> grep -rn "RTSEL" myfolder
myfolder/APERTURE_DATA_PREPARE.sv:73: ? ?.RTSEL(2'b01),
myfolder/APERTURE_DATA_PREPARE.sv:109: ? ?.RTSEL(2'b01),
myfolder/APERTURE_DATA_PREPARE.sv:145: ? ?.RTSEL(2'b01),
myfolder/CHROMA_DATA_PREPARE.sv:74: ? ?.RTSEL(2'b01),
myfolder/CHROMA_DATA_PREPARE.sv:111: ? ?.RTSEL(2'b01),
myfolder/CHROMA_DATA_PREPARE.sv:148: ? ?.RTSEL(2'b01),
myfolder/CHROMA_DATA_PREPARE.sv:185: ? ?.RTSEL(2'b01),
myfolder/LUMA_GEN.sv:85: ? ?.RTSEL(2'b01),
myfolder/LUMA_GEN.sv:122: ? ?.RTSEL(2'b01),
myfolder/LUMA_GEN.sv:159: ? ?.RTSEL(2'b01),
myfolder/LUMA_GEN.sv:196: ? ?.RTSEL(2'b01),?????????
? ? ? ? ?然后,執(zhí)行sed + grep命令進行替換,并再次用grep搜索確認:
>>?sed -i "s/WTSEL(2'b01)/WTSEL(2'b00)/g" `grep "WTSEL(2'b01)" -rl myfolder`
>> grep -rn "RTSEL" myfolder
myfolder/APERTURE_DATA_PREPARE.sv:73: ? ?.RTSEL(2'b00),
myfolder/APERTURE_DATA_PREPARE.sv:109: ? ?.RTSEL(2'b00),
myfolder/APERTURE_DATA_PREPARE.sv:145: ? ?.RTSEL(2'b00),
myfolder/CHROMA_DATA_PREPARE.sv:74: ? ?.RTSEL(2'b00),
myfolder/CHROMA_DATA_PREPARE.sv:111: ? ?.RTSEL(2'b00),
myfolder/CHROMA_DATA_PREPARE.sv:148: ? ?.RTSEL(2'b00),
myfolder/CHROMA_DATA_PREPARE.sv:185: ? ?.RTSEL(2'b00),
myfolder/LUMA_GEN.sv:85: ? ?.RTSEL(2'b00),
myfolder/LUMA_GEN.sv:122: ? ?.RTSEL(2'b00),
myfolder/LUMA_GEN.sv:159: ? ?.RTSEL(2'b00),
myfolder/LUMA_GEN.sv:196: ? ?.RTSEL(2'b00),
? ? ? ? 對WTSEL也依葫蘆畫瓢:
?>> sed -i "s/WTSEL(2'b01)/WTSEL(2'b00)/g" `grep "WTSEL(2'b01)" -rl myfolder`
>> grep -rn "WTSEL" myfolder
myfolder/APERTURE_DATA_PREPARE.sv:74: ? ?.WTSEL(2'b00),
myfolder/APERTURE_DATA_PREPARE.sv:110: ? ?.WTSEL(2'b00),
myfolder/APERTURE_DATA_PREPARE.sv:146: ? ?.WTSEL(2'b00),
myfolder/CHROMA_DATA_PREPARE.sv:75: ? ?.WTSEL(2'b00),
myfolder/CHROMA_DATA_PREPARE.sv:112: ? ?.WTSEL(2'b00),
myfolder/CHROMA_DATA_PREPARE.sv:149: ? ?.WTSEL(2'b00),
myfolder/CHROMA_DATA_PREPARE.sv:186: ? ?.WTSEL(2'b00),
myfolder/LUMA_GEN.sv:86: ? ?.WTSEL(2'b00),
myfolder/LUMA_GEN.sv:123: ? ?.WTSEL(2'b00),
myfolder/LUMA_GEN.sv:160: ? ?.WTSEL(2'b00),
myfolder/LUMA_GEN.sv:197: ? ?.WTSEL(2'b00),
? ? ? ? 確實蠻靈嘎。。。
注意點
????????grep命令前后是一對“`”,不是單引號,是鍵盤左上角的那個!
? ? ? ? sed命令中的oldstring和newstring不需要雙引號圍起來。
????????grep命令的字符串可用雙引號“”圍起來,也可以不用。文章來源:http://www.zghlxwxcb.cn/news/detail-472610.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-472610.html
到了這里,關(guān)于linux中結(jié)合sed和grep的全局文本替換示例的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!