每两行保存到一个文件中

我尝试读取文件并每2行创建一个新文件。新文件应保存在其他目录中。第一行应该是文件名,第二行应该是文件中的字符串。

输入文件如下所示:

>sample1
abcdefg
>sample2
xyz
>sample_n...
string_n...

我尝试使用以下awk命令

awk -v FS=">" '$1 { file = $2 } { print $0 > /new_folder/new_file }' input_file

但是它不起作用。 有什么建议吗?

ttzzhhssjjnn 回答:每两行保存到一个文件中

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 }
'
本文链接:https://www.f2er.com/3033465.html

大家都在问