Печатать все записи в файле после (и включая )определенное время

Наконец-то я решил проблему

1 -Загрузите пакет rpm.rte с сайта IBM и выполните:

 installp -aXYF -d /path/to/rpm/rpm_rte rpm.rte

2 -Загрузите полный zip-пакет gcc для aix6.1 (94 МБ )с сайта bullfreeware.com, распакуйте его в папку и установите, используя

rpm -Uvh *rpm

3 -Загрузите полный пакет git zip, за исключением пакетов, установленных на последнем шаге (130 МБ )и установите его, как на шаге 2, и выполните это:

export LIBPATH=/opt/freeware/lib64:/opt/freeware/lib:/usr/lib

4 -Загрузите и установите cpio с сайта bullfreeware.com и выполните шаги, относящиеся к 2018 -17 января, чтобы устранить проблему с libintl.so.9, подобную этой:

rpm2cpio gettext-0.19.8-1.aix6.1.ppc.rpm | /opt/freeware/bin/cpio -iv opt/freeware/lib/libintl.a 
--> opt/freeware/lib/libintl.a 
# ar xv opt/freeware/lib/libintl.a libintl.so.9 
x - libintl.so.9 
# ar q /opt/freeware/lib/libintl.a libintl.so.9 
# ar -X64 xv opt/freeware/lib/libintl.a libintl.so.9 
x - libintl.so.9 
# ar -X64 q /opt/freeware/lib/libintl.a libintl.so.9 

Я установил cdrecord, vnc и mkisofs только потому, что они были установлены в прошлый раз. Окончательный запрос по rpm был таким:

root@srv:/ins>rpm -qa
cdrecord-1.9-7.ppc
libgcc-8.3.0-1.ppc
libstdc++-8.3.0-1.ppc
mpfr-3.1.4-1.ppc
libmpc-1.0.3-2.ppc
libffi-3.2.1-2.ppc
libxml2-2.9.4-2.ppc
libiconv-1.14-22.ppc
bash-4.4-4.ppc
gcc-8.3.0-1.ppc
vnc-3.3.3r2-6.ppc
mkisofs-1.13-4.ppc
db-4.8.24-4.ppc
perl-5.28.0-1.ppc
expat-2.2.6-1.ppc
sqlite-3.7.15.2-3.ppc
rsync-3.1.2-3.ppc
unixODBC-2.3.6-2.ppc
libidn-1.35-1.ppc
less-481-1.ppc
python-2.7.15-5.ppc
git-2.21.0-6.ppc
lynx-2.8.4-2.ppc
AIX-rpm-6.1.8.15-7.ppc
zlib-1.2.11-1.ppc
gmp-6.1.1-1.ppc
ncurses-6.1-1.ppc
xz-libs-5.2.2-2.ppc
glib2-2.48.1-2.ppc
libunistring-0.9.6-2.ppc
gettext-0.19.8-1.ppc
info-6.4-1.ppc
gcc-cpp-8.3.0-1.ppc
unzip-6.0-3.ppc
readline-7.0-1.ppc
gdbm-1.10-1.ppc
openssl-1.1.0g-1withsslv2.ppc
libssh2-1.8.0-1.ppc
vim-common-7.4-4.ppc
libtool-ltdl-2.4.6-2.ppc
openldap-2.4.44-5.ppc
curl-7.64.0-1ldapssl.ppc
bzip2-1.0.6-2.ppc
vim-enhanced-7.4-4.ppc
cpio-2.12-2.ppc

4 -Теперь извлеките tar-файл node.js в aix и выполните это:

export PATH=$PATH:/path/to/nodejs/bin

5 -Наконец-то готово

node app.js
-1
25.01.2021, 15:06
2 ответа

Вы хотите напечатать только дату или всю строку, содержащую дату?

Чтобы напечатать всю строку, я бы использовал grep '\[1/24/21 9:19:20:183 MYT\]' file, но если вы настаиваете на использовании sed, это можно сделать с помощью sed -n '/\[1\/24\/21 9:19:20:183 MYT\]/p' file.

РЕДАКТИРОВАТЬ :Уродливых обратных косых черт можно избежать с помощью grep -F, как предложил пользователь freddy в первом комментарии ниже.

Опция -nобеспечивает отображение строк только в том случае, если они явно напечатаны программой sed. Команда pявно печатает строку.

Чтобы печатать только дату, grepтакже является лучшим решением. Вы просто добавляете опцию -oили --only-matching. Это также должно быть возможно с sed, но требует большего мастерства, чем у меня есть.

РЕДАКТИРОВАТЬ :OP на самом деле имеет другое требование и изменил вопрос. Вы можете указать диапазон строк sed. «от строки, содержащей [1/24/21 9 :19 :20 :183 MYT] до конца» записывается как /\[1\/24\/21 9:19:20:183 MYT\]/,$. Знак доллара указывает на последнюю строку.Итак:

sed -n '/\[1\/24\/21 9:19:20:183 MYT\]/,$p' file
1
18.03.2021, 22:34

Если это не обязательно sed, будет работать следующая awkпрограмма:

awk -v start="[1/24/21 9:19:20:183 MYT]" 'index($0,start)==1{f=1} f' file

Это будет анализировать файл, пока не будет найдена строка, начинающаяся со строки, указанной в переменной start. После обнаружения он устанавливает флаг fв 1. Строки печатаются только в том случае, если этот флаг установлен.

Это предполагает строгий временной порядок записей, т. е. вы не можете иметь «более ранние» метки времени после строки с меткой времени start. Хотя маловероятно, это возможно в случае буферизованного ведения журнала.

0
18.03.2021, 22:34

Теги

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