Re: [問題] makefile for loop 問題

看板Linux作者 (DM5)時間2年前 (2021/08/23 21:01), 2年前編輯推噓1(100)
留言1則, 1人參與, 2年前最新討論串3/3 (看更多)
※ 引述《rickieyang (Rickie Yang)》之銘言: : ※ 引述《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 % : 或許你可以根據需要修改 這裡推薦awk 可以很輕鬆的處理一行一行的文檔 %% cat Text.txt a1 b1 c1 a2 b2 c3 %% cat ./script.awk #! /usr/bin/awk -f BEGIN { shell = "bash" } { printf "./my_program -a %s -b %s -c %s\n", $1, $2, $3 | shell } END { close(shell) } %% ./script.awk Text.txt 等同於執行 %% ./my_program -a a1 -b b1 -c c1 %% ./my_program -a a2 -b b2 -c c2 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.163.143.49 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1629723680.A.226.html

08/24 00:03, 2年前 , 1F
08/24 00:03, 1F
※ 編輯: peterbrucele (1.163.143.49 臺灣), 08/24/2021 00:59:28
文章代碼(AID): #1X8vmW8c (Linux)
文章代碼(AID): #1X8vmW8c (Linux)