Sam*_*lil 6 bash sed substitution
我的问题似乎很笼统,但我找不到任何答案.
在sed命令中,如何用简单的bash函数返回的值替换替换模式.
例如,我创建了以下函数:
function parseDates(){
#Some process here with $1 (the pattern found)
return "dateParsed;
}
Run Code Online (Sandbox Code Playgroud)
以及下面的sed命令:
myCatFile=`sed -e "s/[0-3][0-9]\/[0-1][0-9]\/[0-9][0-9]/& parseDates &\}/p" myfile`
Run Code Online (Sandbox Code Playgroud)
我发现caracter'&'代表当前发现的模式,我希望它传递给我的bash函数,整个模式被找到的模式+ dateParsed替换.
有人有想法吗?谢谢
use*_*own -4
您可以通过结束单引号部分并再次重新打开它来将 sed 命令粘合在一起。
sed -n 's|[0-3][0-9]/[0-1][0-9]/[0-9][0-9]|& '$(parseDates)' &|p' datefile
Run Code Online (Sandbox Code Playgroud)
然而,与其他示例相比,bash 中的函数不能返回字符串,只能将它们输出:
function parseDates(){
# Some process here with $1 (the pattern found)
echo dateParsed
}
Run Code Online (Sandbox Code Playgroud)