I cannot connect to the Wi-Fi because it says that a firmware is missing. I didn't have this problem when I have Lubuntu installed.
¿Por qué?
La tarjeta wifi BCMxxx usa un firmware
non-free
y la imagen oficial de Debian no incluye el softwarenon-free
, usando la imagen oficial puede cargar el firmware faltante desde un dispositivo USB fat32 formateado después de extraer el firmware de ] aquí(exactamente firmware -brcm80211)Omitió estos pasos durante la instalación del sistema, puede hacer que el wifi funcione siguiendo la respuesta de telecoM a través del paquete
firmware-brcm80211
o siguiendo los documentos de Debian instalando elbroadcom-sta-dkms
luego cargando el módulo no -librewl
.No tienes problemas para usar Lubuntu porque incluye el firmware
non-free
.Hay disponible una imagen no oficial de Debian que incluye el software no -gratuito para que el wifi funcione durante la instalación del sistema.
Imágenes gratuitas no oficiales no -que incluyen paquetes de firmware
Учитывая ваш комментарий о том, что вы хотите обновить файлы in this directory and other directories next to it.
, давайте предположим, что у вас есть каталог, в котором есть другие каталоги, в которых находятся файлы, которые вы хотите изменить. Вот как вы это сделаете после того, как cd -перейдет в этот каталог верхнего уровня:
find. -maxdepth 2 -mindepth 2 -exec awk -i inplace '{print} $1==8852{$1=9997; print}' {} +
В приведенном выше примере используется GNU awk для редактирования «на месте» и GNU find для +
. Если у вас нет инструментов GNU, при условии, что ваши имена файлов не содержат символы новой строки:
tmp=$(mktemp)
while IFS= read -r file; do
awk '{print} $1==8852{$1=9997; print}' "$file" > "$tmp" &&
mv "$tmp" "$file"
done < <(find. -maxdepth 2 -mindepth 2) )
rm -f "$tmp"
Если вы не хотите изменять метку времени для файлов, не содержащих 8852
, тогда:
tmp=$(mktemp)
while IFS= read -r file; do
awk '$1==8852{f=1; exit} END{exit !f}' "$file" &&
awk '{print} $1==8852{$1=9997; print}' "$file" > "$tmp" &&
mv "$tmp" "$file"
done < <(find. -maxdepth 2 -mindepth 2) )
rm -f "$tmp"
Итак, у вас есть много файлов, и в них есть одна строка в следующем формате.
8852 0.53451 0.55959 0.65494 0.36047
Теперь вы хотите открыть файл и заменить первый столбец значением по вашему выбору, а остальное оставить как есть, а затем добавить его к следующей строке.
8852 0.53451 0.55959 0.65494 0.36047
9997 0.53451 0.55959 0.65494 0.36047
Если я правильно отвечу на этот вопрос, нижеследующее должно сработать.
for file in ``find. -name "*.txt"``; do awk '{print "\n9997 "$2,$3,$4,$5}' $file >> $file; done
Получите все файлы в папке, с помощью awk прочитайте файл и возьмите 2345 столбцов, а для первого столбца добавьте свое значение и добавьте его к тому же файлу.
Извините, если я неправильно понял ваш вопрос.
Я бы посоветовалawk '{print; $1 = 9997; print}'
$ echo '8852 0.53451 0.55959 0.65494 0.36047' | awk '{print; $1 = 9997; print}'
8852 0.53451 0.55959 0.65494 0.36047
9997 0.53451 0.55959 0.65494 0.36047
Вы упомянули о применении преобразования к нескольким файлам :это можно сделать либо с помощью цикла
for f in *.txt; do awk '{print; $1 = 9997; print}' "$f"; done
или (рекурсивно )с использованиемfind
find. -name '*.txt' -exec awk '{print; $1 = 9997; print}' {} \;
, однако, если у вас нет последней версии GNU Awk с расширением -i inplace
, результаты будут объединены и записаны в стандартный вывод.