Re: [問題] makefile for loop 問題
※ 引述《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,
3年前
, 1F
08/24 00:03, 1F
※ 編輯: peterbrucele (1.163.143.49 臺灣), 08/24/2021 00:59:28
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
Linux 近期熱門文章
23
129
PTT數位生活區 即時熱門文章