scutwyz 发表于 2012-09-25 22:39

关于sed命令

$(obj)include/autoconf.mk: $(obj)include/config.h

        @$(XECHO) Generating $@ ; \

        set -e ; \

        : Extract the config macros ; \

        $(CPP) $(CFLAGS) -DDO_DEPS_ONLY -dM include/common.h | \

                sed -n -f tools/scripts/define2mk.sed > $@.tmp && \

        mv $@.tmp $@

       能解明那个标红的sed命令的意义吗?

       好像sed -f A B   将A文件描述需要替换的地方 , B文件为所需要进行替换操作的文件

       但是这样子,整个语句是什么意思呢?


scutwyz 发表于 2012-09-25 22:59

弄错了,标红的应该是:
sed -n -f tools/scripts/define2mk.sed > $@.tmp && \

      mv $@.tmp $@

MMMIX 发表于 2012-09-26 09:24

回复 2# scutwyz


    直说这个语句你什么地方不理解吧

linux_c_py_php 发表于 2012-09-26 11:26

sed -n -f tools/scripts/define2mk.sed > $@.tmp && \
-n是默认不输出, 除非指定p.
-f是加载sed命令文件, 也就是sed的规则是写在文件里的.
$@是所有的命令行参数, 比如调用脚本是:./some_script some_args1 some_args2 , 那么$@就是some_args1 some_args2, 之后连接上.tmp.
&&是并且的意思.

sed -n -f tools/scripts/define2mk.sed > $@.tmp 如果执行成功, 那么mv $@.tmp $@, 也就是把临时文件重命名为正式文件.
页: [1]
查看完整版本: 关于sed命令