Я также попытался добавить принтер (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).
Это должно обеспечить то, что требуется:
grep -q "oldstring" test.txt
if [ $? -eq 1 ]; then
echo "newstring" >> test.txt
else
sed -i 's/oldstring/newstring/g' test.txt
fi
Использование 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