簡體   English   中英

如何拆分類似路徑名的字符串以在Makefile中使用?

[英]How do I split a pathname-like string for use in a Makefile?

我有這個Makefile代碼:

%.spf:
    @echo $@;
    runMe.sh $1 $2 $3 $4 $5;

%.spf的示例值為:

ros_apple/bananas_go_while_197815:123.0/monkey_110_worst_forever/thestar.spf

我如何將文件名的參數提取到變量中?

$1 = ros_apple
$2 = bananas_go_while_197815:123.0
$3 = worst
$4 = 110
$5 = thestar

是否可以保留在Makefile中,或者我是否必須創建一個接收$@ Perl腳本並在shell中調用?

但是,這很丑陋,您可能可以對組件1到4進行dir嵌套調用,對基名進行notdir嵌套調用,並可能使用模式匹配來去除最后的斜杠。

你真的需要變量中的路徑組件,還是只需要將它們提供給runMe.sh split? 如果是后者,那么你可以用sedtr (或者只是sed )完成它。 例如,說make all這些:

X=ros_apple/bananas_go_while_197815:123.0/monkey_110_worst_forever/thestar.spf
all:
        @echo `echo $X | sed 's:\.spf$$::' | tr '/' ' '`

生產:

ros_apple bananas_go_while_197815:123.0 monkey_110_worst_forever thestar

所以也許試試這個:

%.spf:
        @echo $@
        runMe.sh `echo $X | sed 's:\.spf$$::' | tr '/' ' '`

如果你已經在Perl中設置了它,那么你可以很容易地將sedtr轉換為Perl。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM