Я использую большую кодовую базу, и ведущие пробелы и табуляции кажутся довольно раздражающими. Есть ли способ избавиться от этого?
grep -R "something" ./
Например, вместо:
foo/bar.cpp: qwertyuiosomethingoi
foo/bar/baz.h: 43rfsgsomethingdrfg
bar/bar.cpp: 1234edwssomethingczd
Я хочу получить что-то вроде:
foo/bar.cpp: qwertyuiosomethingoi
foo/bar/baz.h: 43rfsgdsomethingrfg
bar/bar.cpp: 1234edwssomethingczd
Или лучше:
foo/bar.cpp: qwertyuisomethingooi
foo/bar/baz.h: 43rfsgdrsomethingfg
bar/bar.cpp: 1234edwssomethingczd
command-line
text-processing
grep
sed
Андрей
источник
источник
Ответы:
Создать тестовые файлы
произвести полный великолепный цвет :)
вывод (запустите его, чтобы получить цвет).
Испытано в
gnome-terminal
,konsole
,terminator
,xterm
источник
\t
символы\t
? ... Он не использует\t
разделитель, он использует $ '\ x01' (hex 01) ... или вы имеете в виду что-то еще?\t
так и пробелы\s
[[:space:]]
... Если вы хотите учитывать только TAB и SPACE, а не все пробелы, используйте вместо этого:[ \t]
Вы можете просто устранить их, используя
sed
Это удалит ведущие пробелы из вывода
источник
Предполагая, что вы ищете шаблон
re
(базовое регулярное выражение) в одном файле и хотите удалить начальные пробелы из всех совпадающих строк:(на самом деле это сначала удаляет все ведущие пробелы, а затем ищет шаблон, но результат тот же)
Чтобы обработать
grep
вывод вместо (как в вашем отредактированном вопросе):Шаблон
[[:blank:]]*
соответствует нулю или более пробелов или табуляции.источник
--color=always
этим регулярное выражение не работает: /Файл sed -n '/ pattern / p' | sed -r "s / \ s + // g"
источник