shell从⽂本⾥按⾏读取数据,并赋值给多个变量(ubuntu)
如果帮助到您,还请点个关注吧,hahaha
因为需要⽤ffmpeg处理⼀些图⽚,并且ffmpeg指令中的⼀些参数需要变化,所以就想着写⼀个shell脚本进⾏批处理。虽然代码并没有⼏⾏,但是却耗费楼主数⼩时才搞定,因此记录下该脚本以帮助有相同需求且没有经验的⼩伙伴。
先说明下楼主的数据格式:⽂本中每⾏有三个数据,它们分别⽤‘,’号分割
例如:
3,4,5
6,7,9
现在着重讲⼏个代码中⽤到的参数。
1、for是⽤来按⾏读取⽂本中的内容
2、line代表每⾏的内容
3、awk是将每⾏内容进⾏分段(分割),-F‘,’代表数据按照,进⾏分段
4、m=$(echo$line| awk -F',''{print $1}')是将分段后的第⼀段的数据赋值给m
5、|这个⼩竖线代表将竖线前⾯的数据作为竖线后⾯指令的输⼊
6、⾄此⽂本中的数据赋值完毕了,当我们需要调⽤这些被赋值的变量时,只需要在指令⾥⾯通过使⽤ `$变量`即可,例如需要调⽤变量m,则⽤$m
#!/bin/bash
for line in $(<1/)
do
shell代码
m=$(echo$line| awk -F',''{print $1}')
lon=$(echo$line| awk -F',''{print $2}')
lat=$(echo$line| awk -F',''{print $3}')
#echo $line
#echo $m,$lon
#echo $m,$lat
done

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。