2012-02-17 28 views
5

Tôi có một biến cho phép nói x = TPM/TPMtách một biến trong một làm cho tập tin

trong một makefile tôi muốn để có thể chia x để nửa.

trong bash này sẽ là một cái gì đó giống như $ {x%/} và $ {x # /}

nhưng làm thế nào để tôi làm điều đó trong một makefile?

cảm ơn trước.

Trả lời

4

Nếu đó là tên đường dẫn (hoặc thậm chí nếu nó không phải và dấu phân cách luôn là /), bạn có thể sử dụng các hàm dirnotdir.

half1 = $(dir $(x)) 
half2 = $(notdir $(x)) 
12

Đối với một giải pháp tổng quát hơn (ví dụ như nếu có nhiều hơn hai phần, hoặc nếu tách không phải lúc nào cũng '/'), bạn có thể sử dụng phương pháp này:

y = $(subst /, ,$(x)) 

half1 = $(word 1, $(y)) 
half2 = $(word 2, $(y)) 
+1

này sẽ không làm việc như dự định nếu 'x' chứa dấu cách. –

+0

@ AlexReece, đúng vậy, không phải * đó * chung chung. Bước tiếp theo sẽ là một cuộc gọi đến 'sed'. – Beta

+0

Nếu dấu tách là một khoảng trắng thì tôi nghĩ nó sẽ hoạt động nếu bạn khai báo một biến chứa một dấu cách và sau đó sử dụng biến đó trong 'subst'. – sclarke81

Các vấn đề liên quan