名前が数字ではなく、多くのファイルに貼り付けコマンドを使用する方法は? (各ファイルの列を1つのファイルに貼り付けます)

名前が数字ではなく、多くのファイルに貼り付けコマンドを使用する方法は? (各ファイルの列を1つのファイルに貼り付けます)

名前が増分数である複数のファイルを貼り付けるには、次のようにします。

paste {1..8}| column -s $'\t' -t
  • ファイル名が数字ではなく単語だけで指定されている場合はどうなりますか?
  • 最大10個のファイルがありますが、どうすればよいですか?

また、必要なすべてのファイルを含むファイルのリストもあります。

これまでの私のアプローチは次のとおりです。

mkdir paste
j=0; while read i; do let j+=1; cp $i/ paste/$j; done<list;
cd paste; paste {1..8}| column -s $'\t' -t

このアプローチには問題はありません。短い方法があるかどうかを尋ねています。


実際、私のファイルは場所だけが異なるだけで同じ名前を持っています1MUI/PQR/A/sum, 2QHK/PQR/A/sum, 2RKF/PQR/A/sum。たとえば、リストファイルはpaste次のようになります。paste {list}/PQR/A/sum

1MUI
2QHK
2RKF
...

ベストアンサー1

bash4本で

mapfile -t <list
paste "${MAPFILE[@]}" | column -s $'\t' -t

paste {list}/PQR/A/sumそのバージョンの場合

mapfile -t <list
paste "${MAPFILE[@]/%//PQR/A/sum}" | column -s $'\t' -t    

おすすめ記事