Bash:2つのファイルシリーズをペアで接続

Bash:2つのファイルシリーズをペアで接続

このパターンを持つファイルがたくさんあります。

file1_foo.ext
file1_bar.ext
file2_foo.ext
file2_bar.ext

など。

「ペアリング」して、次のファイルに入れる必要があります。

file1_foo.txt    file1_bar.txt

(タブ区切り)

この状況で最善の措置は何ですか?

ベストアンサー1

私はあなたが両方とも存在すると仮定したくないと思います。両方の行が存在する場合にのみ、2行が印刷されます。

for file1 in *_foo.ext; do
    file2="${file1%foo.ext}bar.ext"
    if [[ -e "$file2" ]]; then
        printf '%s\t%s\n' "$file1" "$file2"
    fi
done

サンプル:

$ tee {1,2,3}_foo.ext {1,3,4}_bar.ext </dev/null >/dev/null
$ ./script
1_foo.ext   1_bar.ext
3_foo.ext   3_bar.ext

おすすめ記事