Это мой первый вопрос по Codegolf, поэтому я прошу прощения заранее, если он не подходит, и я приветствую любые отзывы.
У меня есть файл с этим форматом:
a | rest of first line
b | rest of second line
b | rest of third line
c | rest of fourth line
d | rest of fifth line
d | rest of sixth line
Фактическое содержание меняется, как и разделитель. Содержание просто текст. Разделитель появляется только один раз в строке. Для этой головоломки не стесняйтесь менять разделитель, например, используйте «%» в качестве разделителя.
Желаемый вывод:
a | rest of first line
b | rest of second line % rest of third line
c | rest of fourth line
d | rest of fifth line % rest of sixth line
У меня уже есть оба сценария ruby и awk, чтобы объединить это, но я подозреваю, что возможно иметь короткий oneliner. т. е. однострочник, который можно использовать вместе с трубами и другими командами в командной строке. Я не могу понять это, и мой собственный сценарий состоит в том, чтобы долго просто сжимать в командной строке.
Самые короткие символы предпочтительнее. Входные данные не обязательно отсортированы, но нас интересует только объединение последовательных строк с соответствующими первыми полями. Есть неограниченное количество строк с соответствующими первыми полями. Поле 1 может быть любым, например, названия фруктов, собственные имена и т. Д.
(Я работаю на MacOS, поэтому лично меня больше всего интересуют реализации, которые работают на Mac).
Вот второй пример / тест. Обратите внимание "|" это разделитель. Пробел перед "|" не имеет значения, и при повторном обращении следует считать частью ключа. Я использую «%» в качестве разделителя в выводе, но опять же, не стесняйтесь менять разделитель (но не используйте квадратные скобки).
Входные данные:
why|[may express] surprise, reluctance, impatience, annoyance, indignation
whom|[used in] questions, subordination
whom|[possessive] whose
whom|[subjective] who
whoever|[objective] whomever
whoever|[possessive] whosever
who|[possessive] whose
who|[objective] whom
Желаемый вывод:
why|[may express] surprise, reluctance, impatience, annoyance, indignation
whom|[used in] questions, subordination%[possessive] whose%[subjective] who
whoever|[objective] whomever%[possessive] whosever
who|[possessive] whose%[objective] whom
["A|some text", "B|other text", "A|yet some other text"]
не является желаемым входом для тестирования, так как ключевые слова A
не находятся в списке один за другим.