微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将一个文件的不同文本行插入到一组文件的特定行中的最佳方法

如何解决将一个文件的不同文本行插入到一组文件的特定行中的最佳方法

这就是我所拥有的。

包含数据的文件

5 Lorem ipsum dolor sit amet,et pri sumo facer,in duo putant atomorum. Usu moderatius
ullamcorper eu,at pri modus summo necessitatibus,pro illum urbanitas ut. Qui cu falli
gloriatur,at perpetua tincidunt nec,vis an lorem detraxit. Audiam insolens nam cu,dico suas
mel eu,pro an doctus habemus mandamus.

6 Assum tibique eloquentiam ne mei,at mel quando tamquam iudicabit. In adhuc everti vix,no
hendrerit persecuti cum. Latine lucilius id sit,an mei maiestatis instructior. Id duo sint
vidit perfecto. Affert adipisci urbanitas ne sit,cu oblique appareat efficiendi cum,mel munere
utamur ad. An eum eius dicam,mei malis vocent epicurei cu,an his appareat insolens constituto.

7 Ut eum falli reprehendunt. Te mea homero expetendis. Ullum numquam accumsan te nam,quo eu
diceret sadipscing. Eam eu erant consulatu assentior. Sed ei quem munere docendi,te accusam
delectus vel.

8 Facete vivendo qui no,reque dolore repudiare ad qui. Sit ea tation iisque delenit. Ad quod
brute usu,ei alii semper iracundia sit. Ius atqui aperiam eu,nec no minimum deleniti. Putent
dolorem vulputate eu nec,sit nihil facilis complectitur te.

9 Per brute assueverit at. Ut vim labitur debitis,nec alii nonumes oporteat no. Usu ea animal
blandit corrumpit. Ei alterum praesent vis,pro idque SAEpe vocent an. Usu in accusata invenire
iracundia,graeco officiis vim eu.

我有一堆文件,每个文件中都有空行13:

  • 2020-10-12-lorem.md
  • 2020-10-13-ipsum.md
  • 2020-10-14-dolor.md
  • 2020-10-15-sit.md
  • 2020-10-16-amet.md

有没有办法将包含起始数字的第一段插入到第一个文件的第13行中,将第二段插入到第二个文件的第13行中,等等。

例如:

2020-10-12-lorem.md

5 Lorem ipsum dolor sit amet,pro an doctus habemus mandamus.

2020-10-13-ipsum.md

6 Assum tibique eloquentiam ne mei,an his appareat insolens constituto

解决方法

只需尝试一下:

use strict;
use warnings;

#Input file
my $filewithdata = "FileWithData.txt"; my $temp;

#Input file reading here
open(FILE,$filewithdata) || die "... $!\n";
{ local $/; $_ = <FILE>; $temp = $_;  }
close(FILE);


#List of Blank data files
my @Tobe_Inserted_files = qw(2020-10-12-lorem.md 2020-10-13-ipsum.md 2020-10-14-dolor.md 2020-10-15-sit.md 2020-10-16-amet.md );

#Split the data file by double entermark (As per your example)
my @datasSplited = split /\n{2,}/,$temp; my $i = 0;
for(@datasSplited)
{
    #Each splitted data into the corresponding files
    open(OUT,">$Tobe_Inserted_files[$i]") || die "...$!\n";
    print OUT $_;
    close(OUT);
    $i++;
}
,

这可能对您有用(GNU csplit和并行):

csplit  dataFile '/^$/1' '{*}' &&
parallel sed -i -e \''13r {1}'\' -e \''13d'\' {2} ::: xx?? :::+ fileMD{1..3} &&
rm xx??

将数据文件拆分为名为xx00,xx01等的单独文件...

将每个xxnn文件与对应的markdown文件配对,在第13行插入该段落,删除现有的第13行。

最后,删除拆分的文件。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。