首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按照[前缀]-name格式化文本块

按照[前缀]-name格式化文本块
EN

Stack Overflow用户
提问于 2021-02-03 08:46:19
回答 2查看 41关注 0票数 0

我有一个这样格式化的文本文件

代码语言:javascript
复制
[PC] AeternoBlade II: Director
https://yyyy.cc/CD1.html

Link;AA.part1.rar;BB;
Link;AA.part2.rev;CC;

https://yyyy.com/wqAk848v

Link;BB.part1.rar;BB;
Link;BB.part2.rev;CC;

[PC] Halflife
https://yyyy.com/wqAk848v

Link;XX.part5.rar;VV;
Link;XX.part6.rev;DD;
......

我试着用这种方式格式化文本。

代码语言:javascript
复制
[PC] AeternoBlade II: Director
https://yyyy.cc/CD1.html

[PC] AeternoBlade II: Director;Link;AA.part1.rar;BB;
[PC] AeternoBlade II: Director;Link;AA.part2.rev;CC;

https://yyyy.com/wqAk848v

[PC] AeternoBlade II: Director;Link;BB.part1.rar;BB;
[PC] AeternoBlade II: Director;Link;BB.part2.rev;CC;

[PC] Halflife
https://yyyy.com/wqAk848v

[PC] Halflife;Link;XX.part5.rar;VV;
[PC] Halflife;Link;XX.part6.rev;DD;

我有一个文件名,它总是以PC开头,但是有一个标准前缀,后面跟着下面的链接。

我尝试在Link;之前添加前缀名称。

有人能让我走上实现这一目标的正确道路吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-03 11:15:43

这可能对您有用(GNU sed):

代码语言:javascript
复制
sed -E '/^\[PC\]/h;/^Link/{G;s/(.*)\n(.*)/\2;\1/}' file

复制[PC]开头的最近一行。

如果一行以“Link”开头,则追加复制的行并使用模式匹配将其操作为所需的格式。

票数 1
EN

Stack Overflow用户

发布于 2021-02-03 09:21:39

使用awk:

代码语言:javascript
复制
awk '/^\[PC\]/ { head=$0 } /^Link/ { $0=head";"$0 }1' file

搜索以"PC“开头的行,并将变量头设置为行($0)。然后,当一行以"Link“开头时,将行($0)设置为变量头a ";”然后设置行。用1打印所有结果

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66023998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档