2013-12-18 29 views
0

我有一个输入字符串“abc”,我想输出“abdc”“abddc”“abdddc”“abddddc”。这个字符串操作将成为Makefile的一部分。像可以为同一输入写几个输出吗?

VAR := $(shell command abc) 

然后VAR东西都会有值 “ABDC abddc abdddc abddddc”。我在找什么command?任何shell命令(即exprsedpython等)对我来说都是有好处的,唯一的限制就是应该尽可能简单的单线程。作为一个额外的问题,假设我想让命令得到一个整数n(字符串输入始终是“abc”),我将得到n输出“abdc abddc ... ab {d^n} c”。在尝试了很多类型的for循环之后,我来请求您的建议。

回答

3

下面是一个Python 1班轮:

>>> " ".join("ab" + "d"*i + "c" for i in range(1, 5)) 
'abdc abddc abdddc abddddc' 
+3

为了完整性'command' = python -c“print''.join('ab'+'d'* i +'c'for i in range(1,5))” – e271p314

1
# n = occurence wanted 
n=5 

# does not allow 0 occurence 
n_1=$((${n} - 1)) 
echo "abc" | sed ': loop 
    s/\(ab\)\(d\{0,${n_1}\}\)\(c\)/\1\2d\3/;t loop 
    " 
# or 

# allow 0 occurence 
echo "abc" | sed ": loop 
    /bd\{${n},\}c/ !s/b/bd/;t loop 

不是一个真正的一个衬垫becasue需要回声 ”sed的 (AIX/KSH前ABC“:非GNU使用sed )

+0

不是一行代码,而是仍然非常有趣 – e271p314

相关问题