【发布时间】:2020-11-23 10:37:08
【问题描述】:
如何从我的配置文件中有效地取消注释以下行。
#PPD=/home/mine/ppd (Line no. 100)
#_dco_ppd.c \
# -DUSE_LIC -I$(LIC)/include -I$(LIC)/include/grok.c \
# -L$(LIC)/lib -llic -lokta
我尝试了以下选项均无效
grep -A 4 "PPD=/home/mine/ppd" config | xargs 0 sed -i 's/^#//g' [抛出以下错误]
sed: 无效选项 -- 'D' 用法:sed [OPTION]... {script-only-if-no-other-script} [input-file]...
其他尝试
sed -i 's|#PPD=/home/mine/ppd|PPD=/home/mine/ppd|' config (worked)
sed -i 's|#_dco_ppd.c|_dco_ppd.c|' config (worked)
sed -i 's|# -DUSE_LIC| -DUSE_LIC|' config (didnt work)
sed -i 's|#-DUSE_LIC|-DUSE_LIC|' config (didnt work as well)
我哪里错了?
我在 14.04.1-Ubuntu Docker 容器上
GNU bash,版本 4.3.11(1)-release (x86_64-pc-linux-gnu)
【问题讨论】:
-
当我尝试你的尝试时,
0在xargs之后会抛出No such file or directory错误(但你有一些其他错误).. 在任何情况下,你不能将 grep 结果传递给 sed当你也需要就地使用时的一种方式