Я пытаюсь заменить строку в файле, содержание, как показано ниже:

node11d:hostname1:KY home node11d 202014
node2:hostname1:KY home node2 202014
node3c1:hostname1:KY home node3c1 202014

Я хочу этот вывод:

hostname1 home node11d 202014
hostname1 home node2 202014
hostname1 home node3c1 202014

Спасибо!

-2
Carlos Torres 16 Апр 2020 в 20:38

2 ответа

Лучший ответ

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

awk -F"[: ]" '{print $2,$4,$5,$6}' yourfile

Это просто разбивает каждую строку на двоеточие или пробел (на столбцы), а затем печатает 2-й, 4-й, 5-й и 6-й столбцы. Очевидно, что если ваш файл отличается по количеству столбцов в зависимости от этого разделения, вам придется проявить больше креативности.

0
JNevill 16 Апр 2020 в 18:04
cat foo.txt | awk '{gsub(/ /,":");print}' | awk -F":" '{print $2,$4,$5,$6}' > new_foo.txt
0
marcelorodrigues 16 Апр 2020 в 17:46