Извлечь строку из каждой строки файла

Используйте e2image -arдля копирования соответствующих частей файловой системы. Он понимает файловую систему и копирует все необходимые метаданные и блоки данных, используемые файлами, пропуская при этом неиспользуемое пространство.

6
09.07.2019, 01:47
3 ответа

Дляawk:

awk -F '[><]' '{print $2}' file

Это устанавливает разделитель полей как >или <и печатает второе поле, которое находится между этими двумя символами.

Дляsed:

sed 's|.*>\(.*\)<.*|\1|' file

Это использует ()для печати того, что находится между >и всем, что следует за ним, и <и всем, что идет до него.

Выход

Wallmart
tastes
8
27.01.2020, 20:20

А как насчет grep?

grep -oP "(?<=\>).*(?=<)"  file

Выход:

Wallmart
tastes

РЕДАКТИРОВАТЬ:

Следуя комментарию @Toby Speight и предполагая, что между > и < есть только слова, чтобы избежать совпадения > и < в других контекстах, команда должна быть

grep -oP "(?<=\>)\w+(?=<)"  file
11
27.01.2020, 20:20

Я пробовал с помощью приведенной ниже команды, и она работала нормально

awk -F ">" '{print $2}' filename| sed  "s/<.*//g"

выход

Wallmart
tastes

питон

#!/usr/bin/python
o=open('filename','r')
for i in o:
    k=i.split('>')[1].split('<')[0].strip()
    print k

выход

Wallmart
tastes
2
27.01.2020, 20:20

Теги

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