В Linux у меня есть следующая проблема с paste
from (GNU coreutils) 8.13:
Попытка установить другой разделитель, отличный от значения по умолчанию (TAB), приводит либо к простой печати первого символа определенного разделителя, либо к его полному игнорированию.
Вопрос : Как определить (несколько) разделителей при использовании paste
?
Было бы просто использовать, например, abc-123 в качестве разделителя. Под «множественным» я имею в виду, например, 2 TABS вместо одного.
Шаблоны, включающие разделитель (и), которые я пробовал до сих пор, были
--delimiters="\delimiter"
--delimiters='\delimiter'
--delimiters=$"\delimiter"
--delimiters=$'\delimiter'
Все с одинаковым результатом: только первый символ принимается или полностью игнорируется. Я также пробовал короткую версию -d"\"
и несколько экземпляров & ndahs; ничего.
Также:
--delimiters="\\"
→ Сообщение об ошибке
Что работает отлично, хотя и не то, что я хочу:
--delimiters="\n"
→ новая строка--delimiters="\0"
→ ничего промежуточного--delimiters="\t"
→ TABпо умолчанию. Отлично.
источник
/dev/null
для создания двух столбцов при обработке текста » (кроме того: это общеизвестное знание, которое я пропустил до сих пор, и если нет: откуда вы/dev/null
при чтении действует как пустой файл, так что вы вставляетеfile1
и пустой файл, и пустой файл, file2 с разделителями, в свою очередьa
,b
иc
. Подробности о том, как-d
работает, находятся наpaste
странице руководства .pr -mts'abc' file1 file2
качестве альтернативы?Это потому, что вы даете ему только два файла для объединения, каждый символ строки-разделителя используется между каждым соединением строк из каждого из входных файлов.
например
источник
В системах BSD (не в Linux, насколько мне известно) есть
lam
утилита (как в «ламинате»), которая работает быстрее и короче, чем приведенное выше решение:источник