Что такое команда unix для удаления первых n символов строки?
например, я мог бы хотеть:
tail -f logfile | grep org.springframework | <command to remove first N characters>
Я думал, что tr
может есть возможность сделать это, но я не уверен.
6 ответов:
использовать
cut
. Например. чтобы удалить первые 4 символа каждой строки (т. е. начать с 5-го символа):tail -f logfile | grep org.springframework | cut -c 5-
sed 's/^.\{5\}//' logfile
и вы заменяете 5 на число, которое вы want...it должен сделать трюк...
EDIT если для каждой строки
sed 's/^.\{5\}//g' logfile
можно использовать
cut
:cut -c N- file.txt > new_file.txt
-c:
символы
file.txt:
входной файл
new_file.txt:
выходной файл
N-:
символы от N до конца должны быть вырезаны и выведены в новый файл.также может иметь другие аргументы, такие как: 'Н' , 'Н-м', '-м' значение n-го персонажа, энный мес персонажа, первый мес персонажа соответственно.
это будет выполнять операцию для каждой строки входного файла.
tail -f logfile | grep org.springframework | cut -c 900-
удалит первые 900 символов
cut
использует 900-для отображения 900-го символа в конце строкиоднако, когда я передаю все это через grep, я ничего не получаю
Я думаю
awk
было бы лучшим инструментом для этого, поскольку он может как фильтровать, так и выполнять необходимые функции обработки строк на отфильтрованных строках:tail -f logfile | awk '/org.springframework/ {print substr(, 6)}'
или
tail -f logfile | awk '/org.springframework/ && sub(/^.{5}/,"",)'