質問する内容が非常に分かりづらくて申し訳ありません。テラタームでshellscriptにて、grepとwhile文を使って出力する処理を作っています。
①taro.txtとnames.txt
taro.txt
太郎1 taro_001
太郎2 taro_002
太郎3 taro_003
……
太郎30 taro_030
names.txt
taro_001 つよい かっこいい
jiro_001 すごい かっこいい
taro_002 すごい やさしい
…
while文を使って、taro.txtの行数文だけ、taro.txtとname.txtと比較して同じtaro_xxxの列を出力したい。また、出力する際、taro.txtの一番頭にある「太郎」も出力したいのですが、どのような処理を記載すればよいでしょうか…?
理想結果
太郎1 taro_001 つよい かっこいい
太郎2 taro_002 すごい やさしい
※追記
やったこと
while read line
do
//太郎xを一番左に出力する処理
cat taro.txt | awk '{print substr($0,1,3)}'
cat names.txt | grep taro.txt
done >taro.txt
上記の方法だと
出力結果のnames.txtが出力されず、taro.txtのawkで取得したものをtaro.txtの行数文繰り返す処理になってしまっております。
1行目のtaro.txtの結果を変数に入れ
taroOnly=cat taro.txt | awk '{print substr($0,1,3)}'
ehco -e ''${taroOnly}'/t'
ehco names.txt | grep -e ${taroOnly} '.....taro...'
taro.txtの5行目以降を条件として取得したいのですが、上手くいけず…。
2つの出力結果を1つに並べ、それをtaro.txtの行数文繰り返したいのですが、どのように変更すればよろしいでしょうか?
説明などが不足して大変申し訳ありませんでした。
回答2件
あなたの回答
tips
プレビュー