我有以下格式的文本文件:使用bash脚本阅读分隔的文件,并替换变量与外壳
78 45 89 45
我想读前两个变量(在这里,78和45),执行一些计算并用计算出的新变量替换这些值。
有人可以指出这一点?
我有以下格式的文本文件:使用bash脚本阅读分隔的文件,并替换变量与外壳
78 45 89 45
我想读前两个变量(在这里,78和45),执行一些计算并用计算出的新变量替换这些值。
有人可以指出这一点?
下面是一个例子(编辑:在bash
只),让你开始,我在其中添加12
的第一个值,并添加22
在每一行的第二个值。
$ cat /tmp/text.file
78 45 89 45
88 55 90 50
$ cat /tmp/comp.sh
while read line; do
a=($line)
a[0]=$((a[0] + 12))
a[1]=$((a[1] + 22))
echo "${a[@]}"
done < /tmp/text.file
$ bash /tmp/comp.sh
90 67 89 45
100 77 90 50
这是POSIX,应该在任何伯恩的遗产壳工作:
while read first second rest; do
first=$((first * 2))
second=$((second + 42))
printf '%s\n' "$first $second $rest"
done < input
也有必要发布要执行的计算和所需的输出(参照计算) – amdixon
哪里是你的预期产出? – anubhava