Мне интересно, что такое синтаксическая ошибка в моей команде, которую я использую.UNIX: Использование awk-команд для фильтрации списков?
В текущем каталоге я использую команду ls -l
для получения прав доступа к файлу в моем каталоге.
Как выполнить запрос, чтобы узнать, какие файлы доступны для чтения, записи и выполнения пользователем, а затем распечатать отфильтрованный список с помощью awk?
Я знаю, что бит, который меня интересует, это второй, третий и четвертый.
Например,
-rw-r----- .. .. .. ..
или
drw-r----- .. .. .. ..
У меня есть команда AWK следующим образом:
ls -l | awk '{if{$1 == /.rwx....../}print "line"}'
Я пробовал много вещей, но все еще есть ошибка синтаксиса.
Любая помощь очень ценится! Заранее спасибо!
Если ваша система имеет 'stat' вы должны использовать, что вместо [разборе команду ls] (http://mywiki.wooledge.org/ParsingLs). Кроме того, если ваш 'find' поддерживает его, попробуйте' find -perms u = rw -type f' или другие разрешения, такие как 'u = rwx',' -g = x' или '/ u = w, g = w' , См. 'Man find' для получения информации о значении этих шаблонов. –