Оказывается, я могу использовать специальную клавишу на клавиатуре ноутбука, fn-f4 , которая возвращает экран в вертикальное положение.
Имея образцы данных, вы можете предположить, что слова #2 и #4 — это то, что вы хотите извлечь; вы бы выразили это в awk с помощью:
awk '{ print $2, $4 }' < /tmp/file.txt > /tmp/out.txt
Использование awk вместо grep.
awk '{print $2,$4}' /tmp/file.txt > /tmp/out.txt
Вы передаете вывод cat file.txt
в awk
.
Затем, используя awk-выражения '{print $2,$4}'
, вы печатаете 2-е и 4-е поля разделяемой строки с пробелом для разделения.
Вы получите то, что хотите.
Можно и так:
cat file.txt | sed "s/.*\(myname[0-9]*\) is \([^ ]*\).*/\1 \2/g" | grep ^myname > /tmp/out.txt
Вы можете использоватьcut
:
cut -d' ' -f2,4 < /tmp/file.txt > /tmp/out.txt
Поскольку метод сценария оболочки был предоставлен выше, попробовал в Python и тоже работал нормально
#!/usr/bin/python
o=[]
k=open('i','r')
for z in k:
o.append(z.strip().split(' ')[1])
o.append(z.strip().split(' ')[3])
for d in range(0,len(o),2):
print " ".join(o[d:d+2])
выход
myname1 yellow.pcapng
myname33 hddd.pcapng
myname44 hello.pcapng