我有這樣的文字如何替換sed命令中具有預定義含義的特定字符?
" File: 'space folder' "
我想只有這
" space folder "
使用awk或者sed來代替呢? 但是,當我試圖用它使用sed它不採取命令! 有沒有人有這方面的解決方案。
我有這樣的文字如何替換sed命令中具有預定義含義的特定字符?
" File: 'space folder' "
我想只有這
" space folder "
使用awk或者sed來代替呢? 但是,當我試圖用它使用sed它不採取命令! 有沒有人有這方面的解決方案。
如果我正確地得到你的意圖,你需要單引號之間的所有文本;您可以使用此:
$ sed -r "s/^.*'([^']*)'.*$/\"\1\"/g" <<< "\" File: 'space folder' \""
"space folder"
$
EDIT1:解釋
command <<< string
=><<<
這裏表示字符串,它是你傳遞一個字符串命令。
我們最終的字符串是這樣的:
$ echo -e "\" File: 'space folder' \""
" File: 'space folder' "
$
,因爲我們的字符串中包含單引號,我們使用雙引號sed
命令:
-r
開關啓用擴展正則表達式
"s/^.*'([^']*)'.*$/\"\1\"/g"
上面的命令用整個行代替之間的文本單引號。
正則表達式擊穿:
^
比賽開始線的
.*
匹配0個或多個字符
'
匹配一個單引號
([^']*)
matche秒0或多個字符不屬於單引號 並記住它作爲反向引用編號\1
'
匹配單引號的拍攝組
.*
匹配0或多個字符
$
比賽行尾
你可以添加幾個例子來澄清你的任務,並顯示你的嘗試命令。 – anubhava