佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1808|回复: 2

请问这个shell里的sed的符号意思是什么?

[复制链接]
发表于 25-11-2009 05:04 PM | 显示全部楼层 |阅读模式
大家好,我在看别人编写的makefile里看见了以下的编码。
想请问大家以下的shell的sed里的意思是什么?
我不知道
^ +#     是什么意思
也不知道
#         是什么意思
然后
$<  >  和  $@     又是什么意思

sed -r -e 's/^ +#/#/g' $< > $@


希望各位高手教导教导。
回复

使用道具 举报


ADVERTISEMENT

发表于 25-11-2009 06:14 PM | 显示全部楼层
读 sed 的 manual  -> man sed

sed 是一个 unix like system 的 tools, 专门用来整理, 处理文字的。

-r , 用 extended regular expression (延伸型正規表示法) , 用过 perl 的, 大概会懂得是什么,于 unix like 里面的差不多

-e = 接下来的是 expression

's/^ +#/#/g'

s = substitute
g = global

expression 可解释为, 在每一行里, 凡是开始是 " +#" 的, 全部替换成为 "#".

$< ???????? , 单独 < 应该不能成为 variable 的
$< 是 vairiable, 里面储存的是要 process 的 text  ( 这么奇怪的命名 ? 如果这里有错,尽量射 )

>  结果 redirect 成 file


$@ ?????????????
$@  variable -> output 储存的 filename ( 又来奇怪的命名 ? )

整个 command 可解释为, process  "$<" (??????)  这个variable 的 file, 在每一行里, 凡是开始是 " +#" 的, 全部替换成为 "#", 结果存入 $@ ( ??????? ) 这个 variable 的 file

[ 本帖最后由 onlylonly 于 25-11-2009 06:23 PM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 26-11-2009 08:49 AM | 显示全部楼层
非常谢谢你的解释 ,整个完整的编码是酱的。
$(SRC_DIR)/%.modified.F : %.F
   sed -r -e 's/^ +#/#/g' $< > $@

如果加上前面一段,那个最后两个output就能够解释了吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 2-12-2025 06:44 PM , Processed in 0.116900 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表