###1.実現したいこと
1.以下の二つのファイルをDIFFします。
text
1$ cat testtest.txt 2111111 3222222 4111111 5222222 6 7 8$ cat testtest_2.txt 9111111 10333333 11111111 12222222 13
2.DIFFした結果の番号を複数の
番号詳細リストにgrepで引き渡します
shell
1$ diff ~/testtest.txt ~/testtest_2.txt 22c2 3< 222222 4--- 5> 333333 6 7$ ls detail_list* 8detail_listA detail_listB detail_listC 9 10###詳細リスト内には各番号の情報が記載されています。 11$ cat detail_listA 12Number name location 13111111 A YOKOHAMA 14444444 B TOKYO 15555555 C HOKKAIDO
3.上記1-2を1行にし実行します。
shell
1$ DETAIL=`ls ~/detail_list*` 2$ DIFF=`diff ~/testtest.txt ~/testtest_2.txt | grep "[0-9][0-9][0-9][0-9][0-9][0-9]" | cut -c 3-8 | awk 'grep {print $1} "${DETAIL}"'` 3
###2.実行結果
shell
1$ echo ${DIFF} 2222222 3333333 4
cut -c 3-8
までの結果までしか出ず、$DETAILでgrepされません。
コマンドを抜き出して以下で実行するとうまくgrepされます。
shell
1 2$ grep 111111 ~/detail_list* 3detail_listA : 111111 A YOKOHAMA
###3.確認内容
変数にうまく展開されていないのか?
と思って以下を確認しましたが、ファイル名は変数にしっかりと入っていました。
shell
1$ echo ${DETAIL} 2detail_listA detail_listB detail_listC 3
以下もうまく動作しました。
shell
1 2$ grep 111111 ~/detail_listA detail_listB detail_listC 3detail_listA : 111111 A YOKOHAMA
awk 'grep {print $1} "${DETAIL}"'
のダブルクォーテーションを外したりもしましたが
syntax errorになってしまいます。
###4.補足
ファイルが複数ではなく、一つの場合はうまくgrepできました。
アドバイスございましたらご教授いただけますでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/16 06:21