Рейтинг:4

Как сделать таблицу Markdown из двух столбцов из списка, элементы которого чередуются с каждым столбцом?

флаг cn

У меня есть длинный список распространенных сокращений слов в названиях периодических изданий. В списке за полным словом следует его аббревиатура. Например:

  • Администрация
  • Админ.
  • Применяемый
  • заявл.
  • Административный
  • Админ.
  • Приблизительный
  • прибл.

Я хочу превратить список в таблицу Markdown, например:

Слово Сокращенное название
Администрация Админ.
Применяемый заявл.

Проблема в том, что делать это вручную будет вечно. Итак, я ищу способ сделать это быстрее. Если это поможет, все сокращенные формы заканчиваются точкой (.).

Я искал в Интернете, но ничего не нашел для этого. Вот почему я спрашиваю здесь. Любая помощь?

Рейтинг:5
флаг zw

Предположим, что у нас есть входной файл со списком из вашего вопроса. Мы можем заполнить его, используя следующую команду:

кот <<EOF > слова+abbrs.txt
Администрация
Админ.
Применяемый
заявл.
Административный
Админ.
Приблизительный
прибл.
EOF

Создание таблицы Markdown возможно в Ubuntu с помощью простого сценария, как показано ниже:

  • тупой пошаговый метод

    # запись заголовка таблицы
    echo "**Word** | **Сокращение**" > table.md
    эхо "- | -" >> table.md
    
    # извлечь нечетные строки как слова в файл words.txt
    awk 'NR%2==1' слова+abbrs.txt > words.txt
    # извлекаем четные строки как сокращения в файл abbrs.txt
    awk 'NR%2==0' слова+abbrs.txt > abbrs.txt
    
    # объединить столбцы из words.txt и abbrs.txt с помощью '|' разделитель
    вставить -d '|' слова.txt abbrs.txt >> таблица.md
    
  • умный однострочный метод (спасибо @steeldriver)

    { printf '%s\n' '**Word** | **Сокращение**' '-|-'; вставить -d '|' - - <слова+abbrs.txt; } > таблица.md
    

Вы получите файл Markdown со следующим содержимым:

$ cat table.md 
**Слово** | **Сокращенное название**
- | -
Администрация|Админ.
Применяется|Применяется.
Административный|Административный.
Приблизительно | Прибл.

Таким образом, он будет отображаться в HTML как

Слово Сокращенное название
Администрация Админ.
Применяемый заявл.
Административный Админ.
Приблизительный прибл.

Подробнее об используемых инструментах:

флаг hr
Не могли бы вы вообще избежать awks и промежуточных файлов здесь? бывший. `{ printf '%s\n' '**Word**|**Сокращение**' '-|-'; вставить -d '|' - -
N0rbert avatar
флаг zw
@steeldriver Спасибо, добавлено. Не могли бы вы порекомендовать мне хорошее онлайн-руководство по AWK и Bash старой школы или книгу?
флаг hr
Обычно я обращаюсь к [Руководству пользователя GNU Awk](https://www.gnu.org/software/gawk/manual/html_node/index.html#SEC_Contents) для получения сведений об где gawk отличается от других реализаций). Что касается самого bash, я на самом деле не уверен - мне нравится [BashGuide] (https://mywiki.wooledge.org/BashGuide) - очевидно, что справочная страница исчерпывающая, но мне трудно ориентироваться.
N0rbert avatar
флаг zw
Спасибо, добавил обе страницы в закладки. https://tldp.org/LDP/abs/html/abs-guide.html тоже выглядит неплохо.
Рейтинг:3
флаг us

Если вы можете использовать Pandoc, он может конвертировать из CSV в Markdown.Предполагая, что у вас есть файл слов по одному в строке, например в ответе Норберта, вы можете преобразовать его в CSV, используя вставить -d, - -, а затем отправить его в Pandoc:

% (printf "%s\n" Аббревиатура слова; входной файл cat) | вставить -d, - - | pandoc -f csv -t markdown_phpextra
| Слово | Аббревиатура |
|----------------|---------------|
| Администрация | Админ. |
| Применяется | заявл. |
| Административный | Админ. |
| Приблизительный | прибл. |

Предоставление:

Слово Сокращенное название
Администрация Админ.
Применяемый заявл.
Административный Админ.
Приблизительный прибл.

(Дальнейшее форматирование заголовка, вероятно, не требуется, поскольку заголовки таблиц обычно форматируются иначе.)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.