Я хотел бы использовать команду grep для печати номера строки для строки, которую я ищу. Однако, когда я использовал команду grep -n, она печатает номер строки с двоеточием: рядом с ней. Есть ли способ, которым я могу использовать ту же команду grep -n для печати номера строки, за которой следует: двоеточие?
$ grep -n 'Captain' sometextfile.txt
3: Captain America
Я бы хотел, чтобы вместо этого напечатал
[ f2](без ':')
Любые предложения
Если вы просто хотите удалить двоеточие (а не заменить его пробелом), вы можете передать вывод своей команды grep через tr. Ваша команда будет выглядеть примерно так:
grep -n 'Captain' sometextfile.txt | tr -d ':'
Если вы хотите заменить двоеточие пробелом, вы можете использовать:
grep -n 'Captain' sometextfile.txt | tr ':' ' ' [ ! d3]
Хотя, как указывает муру, это удалит любые двоеточия в строке.
Можете ли вы попробовать, поможет ли эта команда вам
awk '/Captain America/ {printf "%s %s\n", NR, $0}'
Вот мои два цента на вопрос, используйте вспомогательную функцию awk:
grep -n 'Captain' file.txt | awk '{sub(":"," "); print }'
grep -n 'Captain' file | awk '{sub(":Captain"," Captain"); print }'
И вот вырез (который удаляет все следы :, как в примере Dazzle):
grep -n 'Captain' file | cut -d":" -f1- --output-delimiter=" "