将文件夹名称附加到文件的第一列
Attach foldername to first column of file
我有一个具有相同文件名但位于不同子文件夹中的文件列表。文件中的值用制表符分隔。
我想在所有文件 "test.txt" 上附加一个带有文件夹名称的附加第一列,如果最后合并到一个文件(它们都具有相同的 header 列).
不过,最重要的命令是合并。
我已经尝试了很多命令,但都不起作用,所以我想我错过了 awk 的一个重要步骤...
当前结构是:
mainfolder
|_>Folder1
|_>test.txt
|->Folder2
|_>test.txt
.
.
.
这是我希望在合并所有
之前访问每个文件的地方
#Name Count FragCount Type Left LeftB Right RightB Support FRPM LeftBD LeftBE RightBD RightBE annots
RFP1A 13 10 REF RFP1A_ins chr3:3124352:+ RFP1A_ins chr3:5234143:+ confirmed 0.86 TA 1.454 AC 1.564 ["INTRACHROM."]
#Samplename #Name Count FragCount Type Left LeftB Right RightB Support FRPM LeftBD LeftBE RightBD RightBE annots
Sample1 RFP1A 13 10 REF RFP1A_ins chr3:3124352:+ RFP1A_ins chr3:5234143:+ confirmed 0.86 TA 1.454 AC 1.564 ["INTRACHROM."]
非常感谢!!
D
我相信这可以解决问题:
$ cd mainfolder
$ awk '(NR==1){sub("#","#Samplename\t"); print} # print header
(FNR==1){next} # skip header
{print substr(FILENAME,1,match(FILENAME,"/")-1)"\t"[=10=] } # add directory
' */test.txt > /path/to/newfile.txt
我有一个具有相同文件名但位于不同子文件夹中的文件列表。文件中的值用制表符分隔。
我想在所有文件 "test.txt" 上附加一个带有文件夹名称的附加第一列,如果最后合并到一个文件(它们都具有相同的 header 列). 不过,最重要的命令是合并。 我已经尝试了很多命令,但都不起作用,所以我想我错过了 awk 的一个重要步骤...
当前结构是:
mainfolder
|_>Folder1
|_>test.txt
|->Folder2
|_>test.txt
.
.
.
这是我希望在合并所有
之前访问每个文件的地方#Name Count FragCount Type Left LeftB Right RightB Support FRPM LeftBD LeftBE RightBD RightBE annots
RFP1A 13 10 REF RFP1A_ins chr3:3124352:+ RFP1A_ins chr3:5234143:+ confirmed 0.86 TA 1.454 AC 1.564 ["INTRACHROM."]
#Samplename #Name Count FragCount Type Left LeftB Right RightB Support FRPM LeftBD LeftBE RightBD RightBE annots
Sample1 RFP1A 13 10 REF RFP1A_ins chr3:3124352:+ RFP1A_ins chr3:5234143:+ confirmed 0.86 TA 1.454 AC 1.564 ["INTRACHROM."]
非常感谢!!
D
我相信这可以解决问题:
$ cd mainfolder
$ awk '(NR==1){sub("#","#Samplename\t"); print} # print header
(FNR==1){next} # skip header
{print substr(FILENAME,1,match(FILENAME,"/")-1)"\t"[=10=] } # add directory
' */test.txt > /path/to/newfile.txt