は私が含まれていitemlist.txt
という名前のテキストファイルを操作しようとしています:私は、コードのさまざまなバリエーションを試してみた複数のループを使用して出力を複数の変数に格納するにはどうすればよいですか?
http://example.com/item-a
http://example.com/item-b
http://example.com/item-c
http://example.com/item-d
http://example.com/item-e
。いくつかは、項目だけを返しますが、URLは返しません。私は$url
を正しく割り当てる方法を理解できません。これは、私が望む出力を達成するために最も近い点です。
#!/bin/bash
while read url; do
for item in $(sed "s/http:\/\/example.com\///g"); do
echo $item $url; done
done < itemlist.txt
所望の出力は次のようになります。
item-a http://example.com/item-a
item-b http://example.com/item-b
item-c http://example.com/item-c
item-d http://example.com/item-d
item-e http://example.com/item-e
しかし、その代わりに、私は取得しています:
item-b http://example.com/item-a
item-c http://example.com/item-a
item-d http://example.com/item-a
item-e http://example.com/item-a
誰かがこれを正しく行う方法にいくつかの光を当てることができますか?
++説明のため;全体として、私はまだシェルループ上で単一のツール呼び出しをお勧めします。 – mklement0
2番目の考えでは、タイトルはシェル変数_の結果が必須であることを示唆していますが、これは結果が終わるまでの単なる手段であるかどうかは不明です。いずれの方法でも_sis variables_に各行の結果を格納する必要がある場合は_this_ answerを使用します。それが重要なのは標準出力だけであれば 'awk'解決策を考えてみてください。 – mklement0
合意。シェルにはいくつかの初歩的なデータ処理能力がありますが、一般的には、他のプログラムを実行するシェルの主たる目的をサポートするためにのみ使用してください。独自のデータ処理は 'awk'のようなより適切な言語で行うべきです。 – chepner