Заменить или добавить строку в файл

Я также попытался добавить принтер (Brother HL-5470DW) в Ubuntu 13.10 только для того, чтобы установить установку драйвера gutenprint.

Решение заключалось в установке драйвера LPR, за которым следует CUPS драйвер, оба доступны на веб-сайте Brother. Вы можете установить пакеты .deb из командной строки (sudo dpkg -i --force-all /path/to/driver_package.deb), или если вы дважды щелкните файлы .deb в Nautilus, вы можете установить их через программный центр Ubuntu.

После того, как я установил оба драйвера, я смог нормально использовать принтер. Он появился в приложении «Принтеры» и распечатал тестовые страницы с принтеров, а также файлы из Writer и gedit без проблем. Никаких дополнительных программных установок или конфигураций не требуется. Однако для распознавания нового устройства может потребоваться перезапуск приложения или пакета (например, LibreOffice).

1
задан 21 November 2015 в 15:59

2 ответа

Это должно обеспечить то, что требуется:

grep -q "oldstring" test.txt
if [ $? -eq 1 ]; then
    echo "newstring" >> test.txt
else
    sed -i 's/oldstring/newstring/g' test.txt
fi
2
ответ дан 23 May 2018 в 15:37
  • 1
    @kos: Спасибо за награду UUOC (: - D) и за то, что уделили время чему-то научить этого новичка в сценариях оболочки. Теперь я попытаюсь улучшить код выше. – Sadi 21 November 2015 в 15:33
  • 2
    Я действительно не имел в виду «награду». это вам, просто чтобы указать на это. : D. Выглядит лучше, вы также можете сократить if / else check до этой единственной строки: [ $? -eq 1 ] && echo "newstring" >> test.txt || sed -i 's/oldstring/newstring/g' test.txt. – kos 21 November 2015 в 15:47

Использование AWK:

<<<"$(<in)" awk '{if(/foo/){x=sub(/foo/, "bar", $0)};print}END{if(x!=1){print "bar"}}' >in
% cat in1
string oldstring string
% cat in2
string foo string
% <<<"$(<in1)" awk '{if(/oldstring/){x=sub(/oldstring/, "newstring", $0)};print}END{if(x!=1){print "newstring"}}' >in1
user@user-X550CL ~/tmp % cat in1
string newstring string
% <<<"$(<in2)" awk '{if(/oldstring/){x=sub(/oldstring/, "newstring", $0)};print}END{if(x!=1){print "newstring"}}' >in2
% cat in2
string foo string
newstring
1
ответ дан 23 May 2018 в 15:37

Другие вопросы по тегам:

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