我有很多具有这种模式的文件:
file1_foo.ext
file1_bar.ext
file2_foo.ext
file2_bar.ext
等等。
我需要“将它们配对”并将它们放入这样的文件中
file1_foo.txt file1_bar.txt
(制表符分隔)
在这种情况下,最好的做法是什么?
答案1
我想你不想只是假设两者都存在。这只会打印这两个行(如果它们都存在)。
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