заменить символы после матча - PullRequest
0 голосов
/ 10 июля 2019

У меня есть файл, содержащий строки команд, некоторые с косой чертой. Мне нужны косые черты в большинстве полей, чтобы команды работали, но не в одном, в частности, не в последнем столбце, где я выводил в файл. Я хотел бы заменить косые черты в последнем столбце дефисами.

Я пытался найти предложения awk и sed с обратными ссылками, но не нашел ничего подходящего.

У меня есть файл со строками вроде:

foo find "https://localhost" "/website/foo" "this/that/the/other" "yes/no/maybe" -u admin -p admin > yes/no/maybe.txt

Я хотел бы заменить косую черту в последнем столбце дефисами, например так:

foo find "https://localhost" "/website/foo" "this/that/the/other" "yes/no/maybe" -u admin -p admin > yes-no-maybe.txt

без влияния на другие столбцы, в которых есть косые черты.

1 Ответ

0 голосов
/ 10 июля 2019

Встроенная переменная NF содержит количество полей в текущей записи, что позволяет вам работать с последним полем, не зная, сколько их полей.Это так просто:

$ awk '{gsub("/","-",$NF)}1' file
foo find "https://localhost" "/website/foo" "this/that/the/other" "yes/no/maybe" -u admin -p admin > yes-no-maybe.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...