sudo iwlist wlp2s0 scan | grep ESSID | sort |uniq | awk -F: '{print $2}'
Выдаст вам список доступных ssid
в кавычках, чтобы избавиться от кавычек используйте tr -d \"
, т.е.
sudo iwlist wlp2s0 scan | grep ESSID | sort |uniq | awk -F: '{print $2}' | tr -d \"
Здесь sort
и uniq
печатают только уникальные ssid
, а awk
захватывают только имена.
Вы не можете сделать это, не разархивировав основные файлы в подпапке -.
Примерно так:
set -e
for f in *.zip
do
n=`basename -- "${f}".zip`
mkdir -- "${n}"
cd -- "${n}"
unzip../"${f}"
for p in *.zip
do
unzip -l -- "${p}"
done
cd..
rm -rf -- "${n}"
done
Возможно, вам следует проверить, существует ли уже ${n}
, и если да, то сгенерировать ошибку. Вы также можете использовать временное имя файла для подкаталога -:
dir=`mktemp -d zip-files.XXXXXX`
После этого выполните cd "${dir}"
и rm -rf "${dir}"
.
Обновления:
set -e
используется, чтобы убедиться, что если что-то пойдет не так, скрипт остановится. В частности, если mkdir -- "${m}"
выйдет из строя, cd -- "${m}"
тоже выйдет из строя, и, таким образом, cd..
приведет вас на неправильный уровень каталога, и именно здесь rm -rf -- "${n}"
становится опасным.
Еще один способ сделать оператор cd..
более безопасным — запомнить этот каталог перед циклом for
и использовать этот путь следующим образом:
topdir=`pwd`
for...
do
...
cd "$topdir" # instead of `cd..`
...
done
Таким образом rm -rf -- "${n}"
будет работать только в $topdir
.
Использование временного каталога также сделает вещи намного безопаснее, поскольку таким образом, какими бы ни были имена файлов в верхнем zip-файле, создание/удаление каталога будет работать должным образом.
Если установлен GNU Parallel:
extract_list() {
mkdir "$1"
cd "$1"
unzip../"$1".zip
parallel unzip -l ::: *.zip
cd..
rm -rf "$1"
}
export -f extract_list
parallel extract_list {.} ::: *.zip
С помощью комбинации libarchive bsdtar
и GNU tar
вы можете просматривать содержимое этих вложенных архивов без необходимости распаковывать их на диск:
for f in *.zip; do
bsdtar -cf - --include='*.zip' "@$f" | tar -xf - --to-command='bsdtar tvf -'
done
GNU tar
может направлять элементы архивов в команды при извлечении с помощью --to-command
, но поддерживает только форматы архивов tar
.
bsdtar
поддерживает все виды форматов архивов помимо tar
(, включая zip
), не имеет эквивалента GNU tar
--to-command
(AFAIK ), но может конвертировать архивные форматы на лету.