如果匹配192.168,我需要使用sed将前两个八位字节替换为212.15。
input="192.168.0.1 computer1.desktop"
input2="183.92.0.1 computer1.desktop"
# This should result in
# result="212.15.0.1 newcomputer1.desktop"
echo $input | sed -e 's/192.168/212.15/g' | sed -e 's/computer1/newcomputer1/g'
这部分工作正常。我的问题是第二个sed应该只在第一个正则表达式匹配前两个八位字节时运行。它们可能都可以组合成一个表达式。 目前,如果我这样做:
echo $input2 | | sed -e 's/192.168/212.15/g' | sed -e 's/computer1/newcomputer1/g'
# Then result wouldn't be accurate
# it would echo "183.92.0.1 newcomputer1.desktop"
感谢任何建议。
答案 0 :(得分:3)
以下sed命令应该在匹配target_include_directories(${PROJECT_NAME}
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/include
PRIVATE
src)
/192.168/
请注意sed -e '/192.168/ { s/192.168/212.15/g; s/computer1/newcomputer1/g; }'
匹配任何字符,并确保.
是第一个八位字节192
可用于匹配行首。
^