我是新來猛砸,我試圖創建一個bash的功能,可以:bash腳本通過更換帶有包含空格的任意輸出字符串任意輸入字符串的sed
1)找到匹配它被賦予的所有文件名($1
)遞歸地在我的當前目錄下的子文件夾
2)找到並更換整條生產線的變量字符串($2
)與第二可變字符串匹配模式($3
)
我想我最的在那裏,但有麻煩重新放置包含空格的文本字符串我現在的功能是這樣的:
rplcPhrase() {
find . -name $1 -exec sed -i "/$2/c $3" {} +
}
rplcPhrase $1 $2 $3
和命令行輸入看起來像
研究類似的問題已經解釋的必要性,以便用「逃離」特殊字符(如「!」)在該模式中,並且必須在搜索模式中使用[[:space:]]
來計算空格。但是,我想返回一個包含空格的短語。上面的命令行輸入的結果正確地找到圖案
!phrase to change
但
replacement[[:space:]]phrase
替換它如果我代替改變replacement[[:space:]]phrase
與replacement phrase
,它僅產生
replacement
就像我說,我覺得我快到了,只是想念一些簡單的東西。任何幫助,將不勝感激。
我已經搜索了這個,並找不到解決方案,相當解決我的問題。見鏈接: Replace whole line containing a string using Sed
Using sed to replace text with spaces with a defined variable with slashs
引用您的變量。 – Barmar
@Barmar我應該在哪裏引用變量?在sed命令('sed -i「/」$ 2「/ c」$ 3「」')? – zsatter14