我有一个这样格式化的文本文件
[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;
......我试着用这种方式格式化文本。
[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;之前添加前缀名称。
有人能让我走上实现这一目标的正确道路吗?
发布于 2021-02-03 11:15:43
这可能对您有用(GNU sed):
sed -E '/^\[PC\]/h;/^Link/{G;s/(.*)\n(.*)/\2;\1/}' file复制[PC]开头的最近一行。
如果一行以“Link”开头,则追加复制的行并使用模式匹配将其操作为所需的格式。
发布于 2021-02-03 09:21:39
使用awk:
awk '/^\[PC\]/ { head=$0 } /^Link/ { $0=head";"$0 }1' file搜索以"PC“开头的行,并将变量头设置为行($0)。然后,当一行以"Link“开头时,将行($0)设置为变量头a ";”然后设置行。用1打印所有结果
https://stackoverflow.com/questions/66023998
复制相似问题