大家好,我有几个文件,如
FILE1
>content
AGGAGAjg
GAUGAUGUG
AAG
FILE2
>Againontent
HDHDIHD
DHHDDHK
DH
,我想把所有这些文件合并成一个唯一的文件使用cat FILE* >> Unique_file
还可以在每个文件的>
前面添加文件名。
则Unique_file
的含量为:
>FILE1_content
AGGAGAjg
GAUGAUGUG
AAG
>FILE2_Againontent
HDHDIHD
DHHDDHK
DH
请尝试以下操作。在GNU ' awk中编写和测试。
awk 'FNR==1{sub(/^>/,"&"FILENAME"_")} 1' file1 file2
解释:检查条件FNR==1
,对于每个文件的第一行将为真。然后代入起始>比;和当前文件名,并在当前行添加_
。1将打印其余所有行。
注意:您可以将多个文件传递给awk
,它可以通过它读取多个文件。
for file in $(ls FILE*); do echo $file >> unique_file; cat $file >> unique_file; done
这将回显文件名,并在附加文件本身的内容之前将其附加到输出文件中。
在每个文件上循环并使用sed:
for fil in *;
do
sed "1s/>/>$fil_/" $fil >> Unique_file; # On the first line of the file substitute ">" for ">" followed by the file name (fil) and "_"
done
我做了一个组合:
cat /sharedpath/{unique1,unique2,unique3}/filename > newfile
和
tail -n +1 file1 file2
这:
tail -n +1 /sharedpath/{folder1,folder2,...,folder_n}/file.extension | cat > /sharedpath/newfile
注意unique1 = folder1
在我的例子中是文件。扩展名相同
$ grep . file*|sed -E 's/(^[^:]*):>/>1_/; s/^[^:]*://'
>file1_content
AGGAGAjg
GAUGAUGUG
AAG
>file2_Againontent
HDHDIHD
DHHDDHK
DH