【发布时间】:2014-04-12 17:27:24
【问题描述】:
我认为我遗漏了一些明显的东西,但我花了很多时间谷歌搜索和搜索 stackoverflow,但我找不到答案。我正在寻找一种方法来对捕获的组执行额外的 sed 替换。因此,例如,如果我有文本:
MD5 (./x y.jpg) = 93845ad8b6fb2797d9f1d7e0622e9270
MD5 (./x y z.jpg) = 93845ad8b6fb2797d9f1d7e0622e9270
我想用下划线替换括号内的空格并将字符串重新格式化为文件名md5。
./x_y.jpg 93845ad8b6fb2797d9f1d7e0622e9270
./x_y_z.jpg 93845ad8b6fb2797d9f1d7e0622e9270
我能够捕获文件名,但我不知道如何对捕获的组执行另一个替换。
echo 'MD5 (./x y.jpg) = 93845ad8b6fb2797d9f1d7e0622e9270' | sed 's/MD5 (\(.*\)) = \(.*\)/\1 \2/'
输出:
./x y.jpg 93845ad8b6fb2797d9f1d7e0622e9270
想法?
【问题讨论】: