小编Mr.*_*ven的帖子

AWK 从文本文件读取路径

我有一个名为path_resume.txt的文件,其中包含其他文件的一些路径。

里面path_resume.txt:

./a2111oi/sky130_fd_sc_hd__a2111oi_0.txt
./a2111oi/sky130_fd_sc_hd__a2111oi_2.txt
./a2111oi/sky130_fd_sc_hd__a2111oi_4.txt 
Run Code Online (Sandbox Code Playgroud)

每个路径都指向另一个具有相同结构的文本文件,如下所示:

HEAD
INFO
BEGIN sky130_fd_sc_hd__a2111oi_0
...
...
END BEGIN
END INFO
END HEAD
Run Code Online (Sandbox Code Playgroud)

我试图从 path_resume.txt 读取每个 .txt 文件,复制BEGIN和END BEGIN之间的所有行,并增量保存到另一个名为 output.txt 的文件:

BEGIN sky130_fd_sc_hd__a2111oi_0
...
...
END BEGIN
BEGIN sky130_fd_sc_hd__a2111oi_2
...
...
END BEGIN
BEGIN sky130_fd_sc_hd__a2111oi_4
...
...
END BEGIN
Run Code Online (Sandbox Code Playgroud)

当我跑步时:

awk '{while((getline a < $0)> 0) print a}' path_resume.txt
Run Code Online (Sandbox Code Playgroud)

我可以正确读取 path_resume.txt 中的每个文件,但无法删除不需要的行。

当我跑步时:

awk '/BEGIN/{flag=1}/END BEGIN/{flag=0}flag' ./a2111oi/sky130_fd_sc_hd__a2111oi_0.txt
 >> output.txt
Run Code Online (Sandbox Code Playgroud)

我可以删除不需要的行,但是我必须手动传递文件的路径。我不知道如何合并这两个命令来实现我的目标。我很感激任何帮助。

linux scripting awk text-processing

2
推荐指数
1
解决办法
375
查看次数

标签 统计

awk ×1

linux ×1

scripting ×1

text-processing ×1