需要根据 shell 中变量中可用的值生成文件
Need to generate files based on the value available in a variable in shell
在我的脚本中,我有一个变量 $var
,它的值是“00135 00136 00137”。我想根据 $var
中可用的值生成三个文件 - 如果可能的话不使用循环。
例如,我需要这些名称的 touch 文件:
test.00136.txt
test.00137.txt
test.00138.txt
awk
实用程序使处理列数据变得非常简单:
var="00135 00136 00137"
var1=$(echo "$var" | awk '{print }')
var2=$(echo "$var" | awk '{print }')
var3=$(echo "$var" | awk '{print }')
touch "test.${var1}.txt"
touch "test.${var2}.txt"
touch "test.${var3}.txt"
使用 xargs 可以避免 while 循环。
首先将 var 拆分成行,使用字符串 num 作为占位符并触摸文件:
var="000135 00136 00137 00138 00139"
echo "${var}" | tr " " "\n" | xargs -I num touch test.num.txt
编辑:
避免 tr with
echo -n "$var" | xargs -d' ' -n1 -Inum echo test.num.txt
在我的脚本中,我有一个变量 $var
,它的值是“00135 00136 00137”。我想根据 $var
中可用的值生成三个文件 - 如果可能的话不使用循环。
例如,我需要这些名称的 touch 文件:
test.00136.txt
test.00137.txt
test.00138.txt
awk
实用程序使处理列数据变得非常简单:
var="00135 00136 00137"
var1=$(echo "$var" | awk '{print }')
var2=$(echo "$var" | awk '{print }')
var3=$(echo "$var" | awk '{print }')
touch "test.${var1}.txt"
touch "test.${var2}.txt"
touch "test.${var3}.txt"
使用 xargs 可以避免 while 循环。
首先将 var 拆分成行,使用字符串 num 作为占位符并触摸文件:
var="000135 00136 00137 00138 00139"
echo "${var}" | tr " " "\n" | xargs -I num touch test.num.txt
编辑:
避免 tr with
echo -n "$var" | xargs -d' ' -n1 -Inum echo test.num.txt