需要根据shell中变量的可用值生成文件

时间:2015-10-07 15:06:35

标签: shell unix ksh

在我的脚本中,我有一个变量$var,其值为“00135 00136 00137”。我想基于$var中可用的值生成三个文件 - 如果可能的话,不使用循环。

例如,我需要具有以下名称的触摸文件:

test.00136.txt
test.00137.txt
test.00138.txt

2 个答案:

答案 0 :(得分:0)

awk实用程序使处理柱状数据变得非常简单:

var="00135 00136 00137"

var1=$(echo "$var" | awk '{print $1}')
var2=$(echo "$var" | awk '{print $2}')
var3=$(echo "$var" | awk '{print $3}')

touch "test.${var1}.txt"
touch "test.${var2}.txt"
touch "test.${var3}.txt"

答案 1 :(得分:0)

使用xargs可以避免使用while循环 首先将var拆分为行,使用字符串num作为占位符并触摸文件:

var="000135 00136 00137 00138 00139"
echo "${var}" | tr " " "\n" | xargs -I num touch test.num.txt

编辑:
避免使用

echo -n "$var" | xargs -d' '  -n1  -Inum echo test.num.txt