Я пытаюсь проанализировать файл .conf samba для определенного раздела общего ресурса ...

[CMI]
    oplocks = no
    wide links = no
    writeable = yes
    delete readonly = yes
    path = /LOCALSITE/CMI
    comment = CMI Data
    write list = @cbishare 
    valid users = @cbishare
    create mode = 775
    directory mode = 775

Вот код, который я использую, чтобы получить конкретный раздел, используя awk ...

awk '/\[\<CMI\>\]/{flag=1;next}/^$/{flag=0}flag' /etc/samba/smb.conf

Когда я запускаю эту команду awk без кода для получения нескольких строк {flag=1;next}/^${flag=0}flag я получаю только '[CMI]'.

Что-то не так с моим кодом для перевода всех строк в символ новой строки ($)?

1 ответ1

0

Я обнаружил проблему, подумав о новом символе строки в файле и о том, как я получил тестовый файл. Тестовый файл, который я использую, был скопирован на компьютер с Windows-машины с помощью Webmin через функцию конфигурации samba и помещен в общий ресурс Windows, в котором несколько человек открывали файл для проверки. При копировании файла обратно на Linux-машину все символы новой строки были заменены на «^ m», что приводило к тому, что awk не нашел никаких новых строк. Исправить с помощью команды fromdos в пакете tofrodos.

Нашел это здесь ... https://stackoverflow.com/questions/811193/how-to-convert-the-m-linebreak-to-normal-linebreak-in-a-file-opened-in-vim

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .