親フォルダには内部に複数のフォルダがあります。各フォルダには「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