Сравните размер и популярность пакетов archlinux

Я долго искал решение этой проблемы. Я работаю на старых закрытых системах, в которых нельзя установить новые пакеты. У меня нет команды rename. Наконец, я написал скрипт, который работает со всеми специальными символами, введенными с клавиатуры. ~@#$%^&*()-_=+[]{}\|;:",<.>?'Сценарий переименует каждый файл и каталог в текущем каталоге. Он заменит все специальные символы, кроме -_., на символ _. Строку outfile=можно изменить, чтобы использовать другой символ для замены, если это необходимо. Замените |_|на |.|, чтобы использовать, например, символ ..

#!/bin/bash

for file in./*
do
  infile=`echo "${file:2}"|sed  \
         -e 's|"\"|"\\"|g' \
         -e 's| |\ |g' -e 's|!|\!|g' \
         -e 's|@|\@|g' -e 's|*|\*|g' \
         -e 's|&|\&|g' -e 's|]|\]|g' \
         -e 's|}|\}|g' -e 's|"|\"|g' \
         -e 's|,|\,|g' -e 's|?|\?|g' \
         -e 's|=|\=|g'  `
  outfile=`echo "${file:2}"|sed -e 's|[^A-Za-z0-9._-]|_|g'`
  mv "$infile" ${outfile} &
done

exit
2
20.09.2019, 17:13
1 ответ

Люди из freenode #bash помогли мне написать этот скрипт:

cmppkgs(){
    local IFS="|" a b c d;
    while IFS='?' read -r a b c; do 
        d=$(curl -s "https://pkgstats.archlinux.de/api/packages/$b" | jq.popularity);
        echo "$a?$b?$d?$c"; 
    done < <(expac -SsH M "%m?%n?%d" "$*" | sort -h ) | column -t -s'?' 
}

Вы можете использовать это как:

$ cmppkg lynx w3m
2.02 MiB  w3m    32.21  Text-based Web browser as well as pager
4.99 MiB  lynx   31.02  A text browser for the World Wide Web
7.24 MiB  links  15.64  A text WWW browser, similar to Lynx
1
27.01.2020, 22:16

Теги

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