Вы можете переустановить пакет, открыв терминал (Alt + Control + T) и используя
sudo apt-get install --reinstall nameofpackage
(заменив nameofpackage на имя вашего пакета).
Если вы предпочитаете графический интерфейс для расширенного управления пакетами, сделайте себе одолжение и нажмите Software Center - используйте надлежащий менеджер пакетов, такой как Synaptic или Muon, который позволяет вам переустанавливать пакеты, или вы можете использовать ncurses-based Aptitude в командной строке.
Попробуйте этот сценарий оболочки. В качестве входных данных требуется 2 аргумента. Первый аргумент - это имя входного файла. Второй аргумент - требуемый шаблон для поиска. Он удалит строки после того, как шаблон будет сопоставлен в первый раз.
#!/bin/bash
touch temp.txt
while read line
do
echo "$line" | grep "$2" &> /dev/null
if [ $? -eq 0 ]
then
echo "$line" >> temp.txt
mv temp.txt $1
echo "STATUS: Pattern matched. Successful operation..."
exit 0
fi
echo "$line" >> temp.txt
done < $1
echo "STATUS: Pattern not found. No lines are deleted..."
rm -f temp.txt
Другое решение, используя awk:
awk '/specific-pattern/{stop=1} stop==0{print}' < input_file >> output_file
Пока переменная stop равна 0 (это по умолчанию), awk будет печатать текущую строку. Однако, если текущая строка соответствует регулярному выражению / specific-pattern /, тогда stop будет установлено значение 1. Это делает stop==0 неверным, поэтому awk больше не будет выполнять оператор print.
Вход считывается из файла ввода и добавляется к output_file.
Если вы хотите сохранить линию с шаблоном, отмените две части скрипта awk.
Спасибо @ Zanna
Я нашел это решение:
for ((i=1;i < $count+1 ;i++))
sed -n '/PATTERN/q;p' $i.txt > file_out$i.txt
Спасибо
Попробуйте этот сценарий оболочки. В качестве входных данных требуется 2 аргумента. Первый аргумент - это имя входного файла. Второй аргумент - требуемый шаблон для поиска. Он удалит строки после того, как шаблон будет сопоставлен в первый раз.
#!/bin/bash
touch temp.txt
while read line
do
echo "$line" | grep "$2" &> /dev/null
if [ $? -eq 0 ]
then
echo "$line" >> temp.txt
mv temp.txt $1
echo "STATUS: Pattern matched. Successful operation..."
exit 0
fi
echo "$line" >> temp.txt
done < $1
echo "STATUS: Pattern not found. No lines are deleted..."
rm -f temp.txt
Другое решение, используя awk:
awk '/specific-pattern/{stop=1} stop==0{print}' < input_file >> output_file
Пока переменная stop равна 0 (это по умолчанию), awk будет печатать текущую строку. Однако, если текущая строка соответствует регулярному выражению / specific-pattern /, тогда stop будет установлено значение 1. Это делает stop==0 неверным, поэтому awk больше не будет выполнять оператор print.
Вход считывается из файла ввода и добавляется к output_file.
Если вы хотите сохранить линию с шаблоном, отмените две части скрипта awk.
Спасибо @ Zanna
Я нашел это решение:
for ((i=1;i < $count+1 ;i++))
sed -n '/PATTERN/q;p' $i.txt > file_out$i.txt
Спасибо