#!/bin/bash
TEST="--extra-vars user=jsmith a=abcd --test"
echo $TEST | sed -re "s/(--extra-vars\s)([a-zA-Z0-9\=\s]*)/\1\"\2\"/g"
我正在使用sed在整個第二捕獲組中添加文字引號,但由於某種原因它僅部分引用了組。預期的輸出爲--extra-vars "user=jsmith a=abcd" --test
,但我看到的是--extra-vars "user=jsmith" a=abcd --test
。我認爲使用全局sed修飾符會有所幫助,但它似乎並沒有解決這個問題。Sed:在整個第二捕獲組中添加引號
繼承人到regex101
不相關但記得要引用你的變量擴展,否則他們會經歷分詞,也考慮在sed表達式中使用單引號:'echo「$ TEST」| sed -re'...'' – andlrc
s /考慮/ always/ –
您應該考慮將您的腳本發佈到代碼審查堆棧交換,以便他們可以提出更好的方法。這不是一個寫得很好的程序會發現自己進入的情況。 –