Использование grep для фильтрации

Оказывается, я могу использовать специальную клавишу на клавиатуре ноутбука, fn-f4 , которая возвращает экран в вертикальное положение.

2
03.06.2019, 21:06
5 ответов

Имея образцы данных, вы можете предположить, что слова #2 и #4 — это то, что вы хотите извлечь; вы бы выразили это в awk с помощью:

awk '{ print $2, $4 }' < /tmp/file.txt > /tmp/out.txt
5
27.01.2020, 21:49

Использование awk вместо grep.

awk '{print $2,$4}' /tmp/file.txt > /tmp/out.txt

Вы передаете вывод cat file.txtв awk.

Затем, используя awk-выражения '{print $2,$4}', вы печатаете 2-е и 4-е поля разделяемой строки с пробелом для разделения.

Вы получите то, что хотите.

2
27.01.2020, 21:49

Можно и так:

cat file.txt | sed "s/.*\(myname[0-9]*\) is \([^ ]*\).*/\1 \2/g" | grep ^myname > /tmp/out.txt

1
27.01.2020, 21:49

Вы можете использоватьcut:

cut -d' ' -f2,4 < /tmp/file.txt > /tmp/out.txt 
3
27.01.2020, 21:49

Поскольку метод сценария оболочки был предоставлен выше, попробовал в 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
0
27.01.2020, 21:49

Теги

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