У меня есть .txt файл, содержащийКак удалить поля, содержащие определенную строку или символ?
Name: Dean AGE: 23 Hometown: Chicago
Name: Mary AGE: 68 hometown: New York
Name: Lisa age: 36 Hometown: Los angeles
Name: Greg Age: 18 hometown: London
Как бы я SED, AWK, или тр "Имя:", "Возраст:" и "Родной город:" поэтому результат:
Dean 23 Chicago
Mary 68 New York
Lisa 36 Los angeles
Greg 18 London
Единственное, что я могу думать о том, чтобы AWK через все поля и распечатать их, такие как:
awk '{for (i=1;i<=NF;i++) {if ($i !~/:/) {print i,$i}}}'
Однако это дает мне результат:
Dean
23
Chicago
Mary
68
New
York
Lisa
36
Los
angeles
Greg
18
London
Как вы можете видеть, оно распечатывает каждое поле на своей собственной линии и разбивает Нью и Йорк, а также Лос и ангелы.
Другая идея, которую я имел, заключалась в том, чтобы sed «Name:», «Age:» и «Hometown:» один за другим, все с разными командами, которые заменяют их ничем, что бы сработало. Пример:
sed 's/Name://g'
Однако, есть способ сделать это, не чувствительны к регистру, так как есть "возраст:", "Возраст:" и "AGE:"
Будет ли файл всегда иметь имя, возраст и родной город в этом порядке ни с чем еще до или между ними? – amaurea
он всегда будет в порядке. Однако после города есть и другие элементы. я просто сокращаю их для краткости. – wolfclique