Я не знаю, следует ли отмечать это как ответ .....
За последние пару месяцев я не смог получить надстройку браузера для работы в Firefox, как я описал в моем оригинальном посте. День за днем я пытался, но это не сработало. Теперь, сегодня (11 марта 2018 года), он работает по какой-то неизвестной, загадочной причине.
На основе ваших образцов кажется, что вы действительно хотите добавить следующую строку (удаление дополнительного пробела), если текущая строка имеет ровно 78 символов:
$ sed '/.\{78\}/{N;s/\n //;}' file.ldif
description: Gestion des acces de la CR 902 sur les environnements Big Data en ecriture
distinguishedName: CN=GU_902_A_D5_IC_W,OU=Groupes,OU=CR 902,OU=CAM,DC=LDSCOMPTES
instanceType: 4
whenCreated: 20180115131643.0Z
A возможно, менее хрупкий подход может заключаться в том, чтобы приспособить 40. Приложите строку к предыдущей, если она начнется с знака равенства «=» от Sed One-Liners Питера Круминьса «Объяснение», чтобы присоединиться к следующей строке, когда она начинается с пробела
sed -e :a -e '$!N;s/\n //;ta' -e 'P;D' file.ldif
ПРИМЕЧАНИЕ. Если ваши файлы используют окончание строк CRLF в стиле DOS / Windows, тогда вам нужно будет заменить \n в приведенных выше выражениях на \r\n, т. е.
[ f3]или
sed -e :a -e '$!N;s/\r\n //;ta' -e 'P;D' file.ldif
На основе ваших образцов кажется, что вы действительно хотите добавить следующую строку (удаление дополнительного пробела), если текущая строка имеет ровно 78 символов:
$ sed '/.\{78\}/{N;s/\n //;}' file.ldif
description: Gestion des acces de la CR 902 sur les environnements Big Data en ecriture
distinguishedName: CN=GU_902_A_D5_IC_W,OU=Groupes,OU=CR 902,OU=CAM,DC=LDSCOMPTES
instanceType: 4
whenCreated: 20180115131643.0Z
A возможно, менее хрупкий подход может заключаться в том, чтобы приспособить 40. Приложите строку к предыдущей, если она начнется с знака равенства «=» от Sed One-Liners Питера Круминьса «Объяснение», чтобы присоединиться к следующей строке, когда она начинается с пробела
sed -e :a -e '$!N;s/\n //;ta' -e 'P;D' file.ldif
ПРИМЕЧАНИЕ. Если ваши файлы используют окончание строк CRLF в стиле DOS / Windows, тогда вам нужно будет заменить \n в приведенных выше выражениях на \r\n, т. е.
sed '/.\{78\}/{N;s/\r\n //;}' file.ldif
или
sed -e :a -e '$!N;s/\r\n //;ta' -e 'P;D' file.ldif
На основе ваших образцов кажется, что вы действительно хотите добавить следующую строку (удаление дополнительного пробела), если текущая строка имеет ровно 78 символов:
$ sed '/.\{78\}/{N;s/\n //;}' file.ldif
description: Gestion des acces de la CR 902 sur les environnements Big Data en ecriture
distinguishedName: CN=GU_902_A_D5_IC_W,OU=Groupes,OU=CR 902,OU=CAM,DC=LDSCOMPTES
instanceType: 4
whenCreated: 20180115131643.0Z
A возможно, менее хрупкий подход может заключаться в том, чтобы приспособить 40. Приложите строку к предыдущей, если она начнется с знака равенства «=» от Sed One-Liners Питера Круминьса «Объяснение», чтобы присоединиться к следующей строке, когда она начинается с пробела
sed -e :a -e '$!N;s/\n //;ta' -e 'P;D' file.ldif
ПРИМЕЧАНИЕ. Если ваши файлы используют окончание строк CRLF в стиле DOS / Windows, тогда вам нужно будет заменить \n в приведенных выше выражениях на \r\n, т. е.
sed '/.\{78\}/{N;s/\r\n //;}' file.ldif
или
sed -e :a -e '$!N;s/\r\n //;ta' -e 'P;D' file.ldif
Вы можете использовать awk для этого:
awk '{substr($0,78,78)==""?a="\n":a="";printf "%s"a,$0}'
Эта команда просто проверяет, не является ли символ каждой строки пустым и печатает строку с или без разрыва строки. [!d1 ]
Из вашего примера я понял, что был добавлен отступ (кто это делает???), чтобы удалить эти ведущие дополнительные пробелы, изменив команду:
awk '{gsub(/^ /,"",$0);substr($0,78,78)==""?a="\n":a="";printf "%s"a,$0}'
Если у вас есть нежелательные Возврат каретки в файл также удаляет их:
awk '{gsub(/\r/,"",$0);gsub(/^ /,"",$0);substr($0,78,78)==""?a="\n":a="";printf "%s"a,$0}'
$ <test awk '{gsub(/^ /,"",$0);substr($0,78,78)==""?a="\n":a="";printf "%s"a,$0}'
description: Gestion des acces de la CR 902 sur les environnements Big Data en ecriture
distinguishedName: CN=GU_902_A_D5_IC_W,OU=Groupes,OU=CR 902,OU=CAM,DC=LDSCOMPTES
instanceType: 4
whenCreated: 20180115131643.0Z
Вы можете использовать awk для этого:
awk '{substr($0,78,78)==""?a="\n":a="";printf "%s"a,$0}'
Эта команда просто проверяет, не является ли символ каждой строки пустым и печатает строку с или без разрыва строки.
Из вашего примера я понял, что был добавлен отступ (кто это делает???), чтобы удалить эти ведущие дополнительные пробелы, изменив команду:
awk '{gsub(/^ /,"",$0);substr($0,78,78)==""?a="\n":a="";printf "%s"a,$0}'
Если у вас есть нежелательные Возврат каретки в файл также удаляет их:
awk '{gsub(/\r/,"",$0);gsub(/^ /,"",$0);substr($0,78,78)==""?a="\n":a="";printf "%s"a,$0}'
$ <test awk '{gsub(/^ /,"",$0);substr($0,78,78)==""?a="\n":a="";printf "%s"a,$0}'
description: Gestion des acces de la CR 902 sur les environnements Big Data en ecriture
distinguishedName: CN=GU_902_A_D5_IC_W,OU=Groupes,OU=CR 902,OU=CAM,DC=LDSCOMPTES
instanceType: 4
whenCreated: 20180115131643.0Z
Вы можете использовать awk для этого:
awk '{substr($0,78,78)==""?a="\n":a="";printf "%s"a,$0}'
Эта команда просто проверяет, не является ли символ каждой строки пустым и печатает строку с или без разрыва строки.
Из вашего примера я понял, что был добавлен отступ (кто это делает???), чтобы удалить эти ведущие дополнительные пробелы, изменив команду:
awk '{gsub(/^ /,"",$0);substr($0,78,78)==""?a="\n":a="";printf "%s"a,$0}'
Если у вас есть нежелательные Возврат каретки в файл также удаляет их:
awk '{gsub(/\r/,"",$0);gsub(/^ /,"",$0);substr($0,78,78)==""?a="\n":a="";printf "%s"a,$0}'
$ <test awk '{gsub(/^ /,"",$0);substr($0,78,78)==""?a="\n":a="";printf "%s"a,$0}'
description: Gestion des acces de la CR 902 sur les environnements Big Data en ecriture
distinguishedName: CN=GU_902_A_D5_IC_W,OU=Groupes,OU=CR 902,OU=CAM,DC=LDSCOMPTES
instanceType: 4
whenCreated: 20180115131643.0Z