Я пытаюсь определить, где обрезать бревно, чтобы уменьшить его размер.Журнал был запущен в 2010 году и к нему добавлялись сценарии, которые с тех пор выполняются ежедневно.Я опускаю каждую строку в журнале, чтобы вытащить строки с датами в них, а затем хочу взять последние 4 символа этих строк, поскольку они представляют год.Затем я могу определить, в какой строке, например, впервые появляется 2018 год, и обрезать файл выше этого.
Я пытаюсь использовать tail -c 4, чтобы получить последние 4 символа каждой строки, но япродолжаю получать сообщение об ошибке «не могу открыть ввод» из tail.
код:
#!/bin/bash
date=$(grep ' EST ' input.log)
IFS=$'\n'
for line in $date
do
printf "%s\n" "$line" > output.tmp
chmod 777 output.tmp
echo $(tail -c 4 output.tmp)
done
Когда я запускаю этот код только с «tail output.tmp», без опций, он работает как положенои выводит полную строку, которая в настоящее время повторяется.
Но когда я пытаюсь использовать tail -c 4, я получаю ошибку «tail: not open input».
Я проверил страницу man для tail, и опция -cдоступно, так что я делаю не так?Или есть лучший способ приблизиться к этому, кроме использования хвоста?(У меня нет опции grep -o в моей системе).