Unix 如何使用SED更改以下输入行?
如何使用SED更改以下输入行 输入-总线输入(“abc”)Unix 如何使用SED更改以下输入行?,unix,sed,Unix,Sed,如何使用SED更改以下输入行 输入-总线输入(“abc”) 所需的O/p-总线ln in('def','xyz') 使用sed替换命令: echo "bus_ln in ('abc');" | sed "s/bus_ln in ('abc');/bus_ln in ('def','xyz');/" 尝试一下: sed "s/\([^(]*\)('[^']*')/\1('def','xyz')/" inputfile 它将替换括号之间的任何内容 输入: bus_ln in ('abc'); f
所需的O/p-总线ln in('def','xyz') 使用sed替换命令:
echo "bus_ln in ('abc');" | sed "s/bus_ln in ('abc');/bus_ln in ('def','xyz');/"
尝试一下:
sed "s/\([^(]*\)('[^']*')/\1('def','xyz')/" inputfile
它将替换括号之间的任何内容
输入:
bus_ln in ('abc');
foo('bar');
baz aaa bbb ('ccc ddd') some more text
输出:
bus_ln in ('def','xyz');
foo('def','xyz');
baz aaa bbb ('def','xyz') some more text
这可能适合您:
echo "bus_ln in ('abc');" | sed "s/'.*'/'def','xyz'/"
bus_ln in ('def','xyz');
这使用“
”来包围sed命令,这有时可能导致意外结果。
相反,使用“
”比较笨拙,但更容易预测:
echo "bus_ln in ('abc');" | sed 's/'\''.*'\''/'\''def'\',\''xyz'\''/'
bus_ln in ('def','xyz');
其中,'\'
表示单个'
和'\',\''
表示,'
echo "bus_ln in ('abc');" | sed 's/'\''.*'\''/'\''def'\',\''xyz'\''/'
bus_ln in ('def','xyz');