cat date.txt| sed 'тут что-то' lal.txt > result.txt
изначально смотрел в сторону awk но там файл lal.txt придётся приводить к совсем другому виду.. а если этого не делать как то всё там сложно выходит..
а тут я просто не очень понимаю как передать sed строку из преведущей команды.
Красных бей и белых бей!
Вот вам иерархия!
Я люблю тебя за это, милая моя,
Разудалая, хмельная мать моя – Анархия!
P.S смутное очучение того что это можно сделать чем то типа
более универсальное решение: преобразовать DD.MM.YY в формат понятный команде date, а затем скормить ей и формат, и сами данные. Конечно проще сразу привыкнуть записывать данные в формате, который понимает date, тогда и sed будет тут лишней.
cat date.txt | while read d; do sed 's/DD\.MM\.YYYY/'$d'/' lal.txt; done
меняется только первые DD.MM.YYYY( а хотелось бы все
т.е., вы хотите, чтобы первое вхождение было заменено на первую дату, второе — на вторую, третье — на третью?
тогда бы я порекомендовал в файле lal.txt заменить строки ddmmmmy на уникальные:
#!/bin/sed -rf
1{
x
s/.*/cat date.txt;echo/e
tl
:l
x
}
s/DD\.MM\.YYYY/\r/g
T
G
:begin_loop
s/([^\n\r]*)\r([^\n]*)\n([^\n]+)\n/\1\3\2\n/
t begin_loop
h
s/[^\n]*\n//
x
s/\n.*//
Shell
$ ./date.sed zdate.txt
Hi 01.04.2004 privet 03.04.2005
LALAL 04.04.2006
просто это общее решение при работе с шаблонами, когда данные должны подставляться не просто по порядку, а в нужном месте.
моему телепатическому блоку представился именно общий подход (вероятно потому, что этим регулярно приходится заниматься) — места замены могут встречаться в произвольном порядке в файле шаблона.
просто это общее решение при работе с шаблонами, когда данные должны подставляться не просто по порядку, а в нужном месте.
моему телепатическому блоку представился именно общий подход (вероятно потому, что этим регулярно приходится заниматься) — места замены могут встречаться в произвольном порядке в файле шаблона.
Если так, тогда да, конечно. Я как раз не подумал о таком варианте.
просто это общее решение при работе с шаблонами, когда данные должны подставляться не просто по порядку, а в нужном месте.
ну а я сначала подумал, что даты должны вставляться по формату
т.е. вместо DD.MM.YYYY должно вставится 03.06.2005, а вместо HH-YYYY - 17-2006 (17 часов, 2006й год)
в итоге мой скрипт заменяет все форматы на один символ, а уж потом этот символ меняется как надо. Это не частный случай, это другая задача. (хотя я так и не понял, что всё таки было надо)