Как установить parsecsv: требуются явные шаги

Да, вы можете использовать sed для замены строк:

$ sed -E 'N;N;s/\n([^\n]*)\n([^\n]*)/ \2 \1/' file
Object Name: A     manual_encdomain: Name: A      comments: comment A
Object Name: B     manual_encdomain: Name: B      comments: comment B

Или, что то же самое:

$ sed  'N;N;s/\n\([^\n]*\)\n\([^\n]*\)/ \2 \1/g' file
Object Name: A     manual_encdomain: Name: A      comments: comment A
Object Name: B     manual_encdomain: Name: B      comments: comment B

Как это работает:

  • -E

    Это включает расширенные регулярные выражения.(-Eработает как на BSD (OSX )sed, так и на современной GNU sed. Для более старых версий GNU sed вместо этого используйте -r.)

    Без расширенного регулярного выражения нам нужно экранировать (и ), как показано выше.

  • N;N

    Это читается во второй и третьей строках.

  • s/\n([^\n]*)\n([^\n]*)/ \2 \1/

    Это поменяет местами вторую и третью строки. Первое вхождение \n([^\n]*)захватывает вторую строку и сохраняет ее в группе захвата 1. Второе вхождение \n([^\n]*)захватывает третью строку и сохраняет ее в группе захвата 2. Текст замены \2 \1меняет позицию при замене новые строки с пробелами.

Удаление лишнего пробела

Во входном файле вторая и третья строки имеют отступ. Если мы хотим удалить эти лишние пробелы:

$ sed -E 'N;N;s/\n[[:blank:]]*([^\n]*)\n[[:blank:]]*([^\n]*)/ \2 \1/g' file
Object Name: A manual_encdomain: Name: A  comments: comment A
Object Name: B manual_encdomain: Name: B  comments: comment B

[[:blank:]]— это безопасный для Unicode -способ сопоставления пробелов и табуляций.

0
25.12.2019, 02:37
1 ответ

Запустите composer require parsecsv/php-parsecsv, как указано выше. Если у вас нет композитора, он есть в CentOS в виде пакета :yum install composer

.
1
28.01.2020, 02:38

Теги

Похожие вопросы