テキストファイルを貼り付けて、親ディレクトリ名を各列のヘッダーとして追加します。

テキストファイルを貼り付けて、親ディレクトリ名を各列のヘッダーとして追加します。

親フォルダには内部に複数のフォルダがあります。各フォルダには「text.txt」というテキストファイルがあります。すべてのフォルダのテキストファイルは似ており、それぞれ100行と数字の列が含まれています。はい

cat /folder1/text1.txt

1654
1684
535
35131
.
.

commandを使用して、これらのテキストファイルをすべて1つのファイルの列にマージしたいと思いますpaste。親フォルダからコマンドを実行しました。

paste ./*/text*.text > all_text.txt  # the content for all_text.txt is as follow:

cat all_text.txt
1654        354531 ....
1684        224
535         2424 
35131       24
.
.
.

貼り付けた各列のヘッダーにフォルダー名を追加して次の出力を取得するにはどうすればよいですか?

cat all_text.txt
folder#1   folder #2   .....
1654        354531
1684        224
535         2424 
35131       24
 .
 .
 .   

ベストアンサー1

set各配列要素にパラメータ拡張を使用してディレクトリ名のみを印刷できます。

set -- */text.txt
{ printf '      %s' "${@%/*}" | cut -c2-;  paste -- "$@"; }
# this blank ^ is a literal tab

おすすめ記事