Например, я мог бы хотеть:Что такое команда unix для удаления первых N символов строки?
tail -f logfile | grep org.springframework | <command to remove first N characters>
Я думал, что tr
может иметь возможность сделать это, но я не уверен.
Например, я мог бы хотеть:Что такое команда unix для удаления первых N символов строки?
tail -f logfile | grep org.springframework | <command to remove first N characters>
Я думал, что tr
может иметь возможность сделать это, но я не уверен.
Используйте cut
. Например. раздеть первые 4 символа каждой строки (т.е. начинается на 5-й полукокса):
tail -f logfile | grep org.springframework | cut -c 5-
tail -f logfile | grep org.springframework | cut -c 900-
бы удалить первые 900 символов
cut
использует 900-, чтобы показать характер 900-ой конец линии
однако, когда я труба все это через Grep я не получаю что угодно
«вырезать -c 1-900» не будет «удалить первые 900 символов» - - он оставит только первые 900 символов.Если вы хотите удалить первые 900 символов, используйте «cut -c 901-» – iammichael
также первые 900 символов в каждой строке, за ответ @ iammichael –
sed 's/^.\{5\}//' logfile
и заменить 5 на номер, который вы хотите ... он должен сделать трюк ...
EDIT , если для каждой линии sed 's/^.\{5\}//g' logfile
это должно быть скорее 'sed 's/^. \ {, 5 \} //' logfile' – user3719454
Вы можете использовать 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-го символа соответственно.
Это будет выполнять операцию для каждой строки входного файла.
Бесполезное использование' cat', ' cut file.txt -cN-> new_file.txt' будет работать так же хорошо – ChrisWue
Я думаю awk
будет лучшим инструментом для этого, поскольку он может как фильтр и выполнить необходимые работы со строками функций отфильтрованные строки:
tail -f logfile | awk '/org.springframework/ {print substr($0, 6)}'
или
tail -f logfile | awk '/org.springframework/ && sub(/^.{5}/,"",$0)'
у вас есть представление о том, почему труба не работает? когда я выполняю по существу эту команду, «cut» не выводит результаты в stdout ... если я просто запускаю «tail -f logfile»; cut -c 5- 'я вижу результаты ... проблема должна быть с grep Я использую cygwin FYI спасибо – les2
что происходит, если вы не добавляете последний трубопровод и разрезаете? в основном, если вы удалите последнюю часть строки? – LB40
«загоняет» файл журнала, фильтруя его с помощью grep (т. Е. Все строки с «org.springframework» в них печатаются на стандартный вывод) , когда я добавляю трубку к «разрезанию» ... она висит ОДНАКО, если я удаляю «grep», «cut» работает правильно ... я думаю, что что-то не так с тем, как я использую grep ... может быть тоже cygwin – les2