Text-Processing

粘貼文本文件並將父目錄名稱添加為每列的標題

  • March 27, 2018

在父文件夾中,我有多個文件夾。在每個文件夾中,我都有文本文件“text.txt”。所有文件夾中的文本文件都相似,每個文本文件包含 100 行和一列數字。例子

cat /folder1/text1.txt

1654
1684
535
35131
.
.

我想使用命令將所有這些文本文件合併為一個文件中的列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
.
.
.   

您可以set在每個數組元素上使用參數擴展來僅列印目錄名稱:

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

引用自:https://unix.stackexchange.com/questions/322607