作者rickieyang (Rickie Yang)
看板Linux
标题Re: [问题] makefile for loop 问题
时间Fri Aug 6 12:23:51 2021
※ 引述《Wudc (二宝来啦!!)》之铭言:
: 想请教一下,如果有这样一个text file,
: Text.txt:
: a1 b1 c1
: a2 b2 c2
: ...
: a100 b100 c100
: 要怎麽样在makefile的 for loop 当中用三个变数分别代表 a1~a100 b1~b100 c1~c100呢?
: 用 for i in $$(cat Text.txt)这样的写法可以取出里面的字串
: 但这样没办法在一次回圈中同时取得 a1 b1 c1
: 不得有没有办法在一次回圈中同时取得a1 b1 c1的字串呢?
makefile 我不懂, 不过从 shell script 角度来看.
rickie@MBP16 0 % cat Text.txt
a1 b1 c1
a2 b2 c2
a100 b100 c100
rickie@MBP16 0 % cat Text.sh
#!/bin/bash
OldIFS=${IFS}
IFS=$'\n'
for i in $(cat Text.txt)
do
IFS=${OldIFS}
arr=($i)
printf "att1:%5s att2:%5s att3:%5s\n" ${arr[0]} ${arr[1]} ${arr[2]}
done
OBrickie@MBP16 0 % ./Text.sh
att1: a1 att2: b1 att3: c1
att1: a2 att2: b2 att3: c2
att1: a100 att2: b100 att3: c100
rickie@MBP16 0 %
或许你可以根据需要修改
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.126.46.96 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1628223835.A.A11.html
1F:→ rickieyang: 另外, for cat 要改 IFS 才可以一行一行读 08/06 12:37
2F:→ rickieyang: 可以考虑改用 while read 08/06 12:38
3F:推 Wudc: 谢谢帮忙,我再试试看,主要要取出字串去当其他指令的参数 08/09 10:13