На самом деле это единственный раздел про unix на этом форуме
Модераторы: /dev/random, Модераторы разделов
-
Grih65kop
- Сообщения: 145
Сообщение
Grih65kop »
Из файла необходимо (при помощи awk) выбрать строки в которых больше 4 символов, а затем обрезать строки длиней 4 символ до 4 символьных.
file
Делаю так:
awk 'length > 4' file >file2
awk '{print substr($0,0,5)}' file2
Все работает, но не могу понять как эти два awk сценария можно соединить в один, и почему мы должны указывать 5, а не 4.
-
SLEDopit
- Модератор
- Сообщения: 4824
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Сообщение
SLEDopit »
Код: Выделить всё
sed -n '/[0-9]\{4\}\+/{s/\([0-9]\{4\}\).*/\1/;p}' file
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
-
Grih65kop
- Сообщения: 145
Сообщение
Grih65kop »
Спасибо.
А с чем связано столь странное назначение "5" вместо "4"?
-
SLEDopit
- Модератор
- Сообщения: 4824
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Сообщение
SLEDopit »
Grih65kop писал(а): ↑08.08.2012 19:39
А с чем связано столь странное назначение "5" вместо "4"?
С тем что у вас используется mawk.
mawk в отличии от nawk/gawk первый символ считает не нулевым, а первым, поэтому нужно указывать
В случае с nawk и gawk работает
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.