Необходимо добавить пробелы и запятые в определенных местах.

С помощью sedвы можете сделать это следующим образом:

sed '/tmp/!{H;d;}
G;s/$/\
/;s_.*\(..*\).*\n\1\n_// &_
P;d' file2 file1

Вы собираете шаблоны файла2 в области хранения и для каждой строки файла1 добавляете этот набор и проверяете с помощью обратных ссылок, найден ли шаблон в строке.

Для более подробного объяснения см. этот вопрос и ответ .

Обратите внимание, что я использовал строку tmpкак указание на то, что мы находимся в файле1; вам может потребоваться адаптировать это к вашему реальному случаю. Странная замена, начинающаяся в строке 2, добавляет новую строку в конец, поэтому мы знаем, что каждый шаблон будет окружен новыми строками.

-1
22.01.2020, 17:25
2 ответа

Вот предположение о том, что вы хотите, исходя из трех введенных вами строк:

sed -e 's/\(^..........\)\(........\)/\1 \2,/g' in > out

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

sed -e 's/\(^.\{10\}\)\(.\{8\}\)/\1 \2,/g' in > out
3
28.01.2020, 05:07

Содержимое скрипта

#!/usr/bin/env python
txt = """
2020-01-1713:57:5888823,aJ,MO,ZXC,adf
2020-01-1713:58:3878823,sJ,MO,AXC,Ldf
2020-01-1713:59:1898823,DJ,LO,AZC,NDf
"""
for line in txt.splitlines():
    print(line[:10], line[10:])

Запустить

#./asdf
2020-01-17 13:57:5888823,aJ,MO,ZXC,adf
2020-01-17 13:58:3878823,sJ,MO,AXC,Ldf
2020-01-17 13:59:1898823,DJ,LO,AZC,NDf
0
28.01.2020, 05:07

Теги

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