Строка печати имеет специальный формат и сумму запятой

Атрибуты, обрабатываемые [11790]lsattr[11791]/[12233]chattr[12234]на Linux и некоторые из которых могут храниться в довольно большом количестве файловых систем (ext2/3/4, reiserfs, JFS, OCFS2, btrfs, XFS, nilfs2, hfsplus...) и даже запрашиваемые через CIFS/SMB (при использовании расширений POSIX) - это флаги. Только биты, которые можно включить или выключить, чтобы отключить или включить атрибут (как [11794]immutable[11795] или [11796]archive[11797]...)...). Как они хранятся, зависит от файловой системы, но обычно в виде 16/32/64-битной записи в inode.[12235]Полный список флагов находится на родных файловых системах Linux (ext2/3/4, btrfs...), хотя не все флаги применимы ко всем FS, а для других неродных FS Linux пытается сопоставить их с эквивалентными функциями в соответствующей файловой системе. Например, флаг [11798]simmutable[11799], хранящийся в OSX на файловой системе HFS+, отображается на соответствующий неизменяемый флаг в Linux [11800]chattr[11801]. Какой флаг поддерживается какой файловой системой практически не документируется. Часто единственным вариантом является чтение исходного кода ядра.[12236]Расширенные атрибуты, с другой стороны, как установлено с помощью [11802]setfattr[11803] или [11804]attr[11805] в Linux хранят больше, чем флаги. Они также прикреплены к файлу и являются парами ключ/значение, которые могут быть (как ключом, так и значением) произвольными массивами байт (хотя и с ограничением размера в некоторых файловых системах).[12237]Ключом может быть, например: [11806]system.posix_acl_access[11807] or [11808]user.rsync.%stat[11809]. Пространство имен [11810]system[11811] зарезервировано для системы (вы не измените POSIX ACLs с помощью [11812]setfattr[11813], а с помощью [11814]setfacl[11815], POSIX ACLs просто будут сохранены как расширенные атрибуты, по крайней мере, на некоторых файловых системах), в то время как пространство имен [11816] user[11817] может использоваться приложениями (здесь [11818]rsync[11819] использует его для опции [11820] --fake-super[11821], чтобы хранить информацию о правах собственности или разрешениях, когда вы не являетесь суперпользователем). [12238] И опять же, как они хранятся, зависит от файловой системы. Дополнительную информацию см. в Википедии [11822][11823]..
1
11.04.2015, 15:22
2 ответа

Если вы не возражаете, используйте комбинацию awk и grep.

awk -F"," ' { 
       if ( $2 != "" && $4 ~ /[[:digit:]]{4}(-[[:digit:]]{2}){2} [[:digit:]]{2}(:[[:digit:]]{2}){2}/ ) print
} ' <file> | grep '.*,.*,.*,.*,.*,.*,.*'

РЕДАКТИРОВАТЬ: Чистая альтернатива awk. Спасибо @Archemar за указание на это.

awk -F"," ' {
       if ( NF == 7 && $2 != "" && $4 ~ /[[:digit:]]{4}(-[[:digit:]]{2}){2} [[:digit:]]{2}(:[[:digit:]]{2}){2}/ ) print
} ' <file>
1
27.01.2020, 23:27

Вы бы лучше, чтобы просто использовать GREP . Я знаю, что Regexp, как это может показаться пугающим, но становится лучше, если вы просто сделаете шаг назад.

__=[^,]* d=[0-9][0-9] y=$d$d m=$d

grep "^$__,${__%?}$__,$__,$y-$m-$d $d:$d:$d,$__,$__,$__$\
" <<\IN
6751176513,ahggasda,3453453,hgdahgsd,hgfhgfhg,,
,,

ajhgdha | sajhsgdahj|sdahgdhjaghjsd
6751176513,ahggasda,gdfgdf,2015-10-20 05:15:25,sdfsd,,
IN

Смотрите? Это не все что плохо - и это даже имеет смысл. Это одна вещь Брес (основные регулярные выражения) очень хороши для: легкая абстракция более высокого уровня.

Вышеуказанные отпечатки.

6751176513,ahggasda,gdfgdf,2015-10-20 05:15:25,sdfsd,,
2
27.01.2020, 23:27

Теги

Похожие вопросы