Попытка заменить значение в ряде файлов с помощью команд оболочки (использовать в скрипте для итерации по файлам в каталоге).Замените значение только тогда, когда оно больше
Input file examples:
file1:
019=False
051=Limited
051>Limited Lease Time=2419200
file2:
019=False
051=Limited
051>Limited Lease Time=14400
Это работало хорошо:
sed -e '/Limited Lease Time=/s/[0-9]\+$/86400/g' <infile >outfile
# cat outfile
019=False
051=Limited
051>Limited Lease Time=86400
Но ... потом понял, что я заменял какую-либо ценность, в том числе те, ниже, чем 86400, когда я только хочу, чтобы заменить что-нибудь больше, чем 86400.
Я думал, что я мог бы использовать AWK, и это «вид» работал, как и в выходной был только линии «Limited Lease Time», который имеет значение> 86400:
awk -F= '/Limited Lease Time/ && $2 > 86400 { print $2 }'
... Но это только outputing совпадающей строки, в то время как мне нужен оригинальный выход (3 строки в примерах), в том числе изменения, если соответствуют значению> 86400.
Цените некоторые советы по пути, чтобы обращаться это !
отработали отлично, спасибо! Используется строка awk с импортом переменной -v, чтобы сделать ее более чистой в моем скрипте. Спасибо. Просто сейчас, чтобы прочитать справочную страницу и точно определить, что она делает ;-) – kpw