如果这个问题之前有人问过,我很抱歉,这个问题确实困扰了我几个小时,看起来相对简单。我在单个文件中通过 awk 识别了两个模式。
awk '/\[code\.change\..*\]/ {found=1; print; next} found && NF {print} found && !NF {exit}' filename
awk '/\[code\.test\..*\]/ {found=1; print; next} found && NF {print} found && !NF {exit}' filename
我可以将这两个 awk 合二为一来交换块吗?
配置文件的示例如下: file.cfg
[code.change.1]
file.path=filename
file.contact=manager
file.active=TRUE
[code.test.1]
ls -la filepath
pwd
find . -name filename
只需交换配置的顺序即可。谢谢
根据提供的示例,请您尝试:
如果
ed
可用/可接受,则类似于:一行
如果你对输出/结果感到满意
如果需要就地
Q
编辑,则更改为。w
删除
,p
以使输出静音。参见 POSIX ed
参见 GNU ed
假设输入是一个只有 2 个块的文件,如问题中的示例所示,然后使用任何 awk:
或者:
或者使用 GNU awk 进行多字符 RS: