複数のサブディレクトリにテキスト ファイルがあります
一部/パス/1/ファイル
一部/パス/2/ファイル
一部/パス/3/ファイル
一部/パス/foo/ファイル
...
試合のためにファイルをgrepできる必要がありますが、後でループを使用して各試合を個別に操作できるように、個々の改行を保持します。
私は持っている:
SITE=$(grep -w $1 some/path/*/file)
ただし、これにより、すべてが 1 行にまとめられた非常に長い文字列が生成されます。
理想的には、この変数には、各行のパス名から * の値が含まれます。
例えば:
一部/パス/1/ファイル
一部/パス/3/ファイル
を含む行が含まれてbar
います。
SITE=$(grep -w bar some/path/*/file)
echo $SITE
次のようになります。
some/path/one/file:this is a line of text that has bar in it
some/path/three/file:this is a line of text that has bar in it
しかし、代わりに、私はこれを取得します:
some/path/one/file:this is a line of text that has bar in it some/path/three/file:this is a line of text that has bar in it
この変数を複数行にして、後で次のようなことができるようにする方法はありますか?
for i in `echo $SITE`; do
WHATEVER=$(echo $i | cut -d ':' -f 1 | cut -d '/' -f 3)
echo $WHATEVER
done
出力は次のようになります。
one
three
それとも、私はこれを完全に間違った方法で行っていますか?