我正在尝试解析 samba .conf 文件中的特定共享部分...
[国际劳工组织] oplocks = 否 宽链接 = 没有 可写 = 是 删除只读=是 路径 = /LOCALSITE/CMI 评论=CMI 数据 写列表 = @cbishare 有效用户 = @cbishare 创建模式 = 775 目录模式 = 775
这是我使用 awk 获取特定部分的代码......
awk '/\[\<CMI\>\]/{flag=1;next}/^$/{flag=0}flag' /etc/samba/smb.conf
当我运行此 awk 命令而不使用代码来获取多行时,{flag=1;next}/^${flag=0}flag
我只得到“[CMI]”。
我的代码将所有行都设置为换行符 ($) 是否有问题?
答案1
在考虑了文件中的换行符以及我如何获得测试文件后,我发现了问题所在。我使用的测试文件是通过 samba 配置功能使用 Webmin 从 Windows 计算机复制到计算机的,并将其放在 Windows 共享中,其中有几个人打开了该文件进行检查。将文件复制回 Linux 计算机时,所有换行符都被“^m”替换,这导致 awk 完全找不到任何换行符。使用 tofrodos 包中的 fromdos 命令修复。