изменение даты в журнале - PullRequest
0 голосов
/ 03 марта 2012

сегодня у меня есть этот файл: a20 is (off) Jan 15 и я превратился в это: a20 is (on) Jan 16 но вторая дата в любой день, когда скрипт запускается

date=$(date) с помощью этих команд sed:

sed -i '/'$1'/ s/off/on/' /home/josepas/Mantenimiento

sed -i '/'$1'/ s/).*/) /' /home/josepas/Mantenimiento

sed -i "/$1/ s/$/$date/g" /home/josepas/Mantenimiento

Я хочу сделать это единственным sed, который ищет строку, начинающуюся с (somenumber). Я слышал об опции -e для нескольких команд sed.

Ответы [ 2 ]

2 голосов
/ 03 марта 2012

Это может работать для вас:

date="Jan 16"
echo "a20 is (off) Jan 15" |
sed '/^a[0-9]*/s/(off).*/(on) '"$date"'/'
a20 is (on) Jan 16

если вы хотите использовать «дату завтра» и используете GNU sed, тогда:

echo "a20 is (off) Jan 15" | 
sed '/^a[0-9]\+/s/^\(.*\)(off) \(.*\)/echo "\1(on) $(date -d '\''\2 tomorrow'\'' '\''+%b %d'\'')"/e'
a20 is (on) Jan 16
1 голос
/ 03 марта 2012

Вы можете объединить команды s с помощью ; и выполнить некоторую группировку, окружив свои команды { / }.например:

echo -e "a20 is (off) Jan 15\na21 is (off) Jan 15" | sed "/a20/ { s/off/on/; s/).*/) /; s/$/$(date)/ }"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...