Например, я могу:
tail -f logfile | grep org.springframework | <command to remove first N characters>
Я думал, что tr
может иметь возможность сделать это, но я не уверен.
Например, я могу:
tail -f logfile | grep org.springframework | <command to remove first N characters>
Я думал, что tr
может иметь возможность сделать это, но я не уверен.
Используйте cut
. Например. для полосы первых 4 символа каждой строки (т.е. начать с 5-го char):
tail -f logfile | grep org.springframework | cut -c 5-
sed 's/^.\{5\}//' logfile
и вы заменяете 5 на нужный номер... он должен сделать трюк...
ИЗМЕНИТЬ
если для каждой строки
sed 's/^.\{5\}//g' logfile
Вы можете использовать cut
:
cut -c N- file.txt > new_file.txt
-c:
символы
file.txt:
входной файл
new_file.txt:
выходной файл
N-:
Символы от N до конца будут вырезаны и выведены в новый файл.
Может также иметь другие аргументы типа: 'N', 'N-M', '-M', означающий n-й символ, от n-го до m-го символа, сначала до m-го символа соответственно.
Это будет выполнять операцию для каждой строки входного файла.
tail -f logfile | grep org.springframework | cut -c 900-
удалят первые 900 символов
cut
использует 900-, чтобы показать 900-й символ в конце строки
однако, когда я передаю все это через grep, я ничего не получаю
Я думаю, что awk
был бы лучшим инструментом для этого, поскольку он может как фильтровать, так и выполнять необходимые функции обработки строк в отфильтрованных линиях:
tail -f logfile | awk '/org.springframework/ {print substr($0, 6)}'
или
tail -f logfile | awk '/org.springframework/ && sub(/^.{5}/,"",$0)'
Вот простая функция, протестированная в bash. 1-й параметр функции - строка, второй параметр - количество символов, которые нужно удалить
function stringStripNCharsFromStart {
echo ${1:$2:${#1}}
}