我尝试读取文件并每2行创建一个新文件。新文件应保存在其他目录中。第一行应该是文件名,第二行应该是文件中的字符串。
输入文件如下所示:
>sample1
abcdefg
>sample2
xyz
>sample_n...
string_n...
我尝试使用以下awk命令
awk -v FS=">" '$1 { file = $2 } { print $0 > /new_folder/new_file }' input_file
但是它不起作用。 有什么建议吗?
我尝试读取文件并每2行创建一个新文件。新文件应保存在其他目录中。第一行应该是文件名,第二行应该是文件中的字符串。
输入文件如下所示:
>sample1
abcdefg
>sample2
xyz
>sample_n...
string_n...
我尝试使用以下awk命令
awk -v FS=">" '$1 { file = $2 } { print $0 > /new_folder/new_file }' input_file
但是它不起作用。 有什么建议吗?
OP不包含示例输出,但是从awk
尝试的解决方案中看起来如下所示
修改后的解决方案,用于修复以下语法和逻辑,并保持相同的结构。 dir输入参数名称是要创建文件的目标文件夹(在示例中为“ new_folder”)。
应将“ new_folder”替换为目标文件夹的实际名称(/ path / to / folder或类似名称)。
awk -v 'FS=\t' -v "dir=new_folder" '
$1 = /^>/ { if (new_file ) close (new_file) ; new_file = dir "/" substr($1,2) ; next }
{ print $0 > new_file }
'