Если вы не против использования других инструментов, попробуйте sed
, лучше сохранить интервал исходного файла:
pax> cat qq.in
568 find . -name "*.txt" -mtime -1 -print -exec awk '$9 != "" && NR <= 10' {} \;
569 find . -name "*.txt" -mtime -1 -print -exec awk 'blah blah' {} \;
570 history 10
pax> cat qq.in | sed 's/^ *[^ ]* *//'
find . -name "*.txt" -mtime -1 -print -exec awk '$9 != "" && NR <= 10' {} \;
find . -name "*.txt" -mtime -1 -print -exec awk 'blah blah' {} \;
history 10
Он в основном удаляет все начальные пробелы, за которыми следуют любые непробельные символы, за которыми следуют пробельные символы, что эффективно обрезает первое слово в каждой строке.
Если формат строки может быть привязан к любому количеству цифр в начале строки, за которым следуют два пробела, тогда интересующий вас текст, вы можете немного улучшить регулярное выражение (есть два пробела после *
):
sed 's/^[0-9]* //'