Срок службы Fedora 18 подошел к концу, никаких обновлений и исправлений ошибок не ожидается. Выполните обновление до текущей версии Fedora 20. Прочтите и внимательно следите за примечаниями к обновлению, с fedup
были плохие сбои (в основном, обновленная система загружается в старую систему, а не в обновление; они должны ] должны быть устранены к настоящему времени), и держите машину подключенной к сети под рукой для поиска решений в Google на случай, если обновление не удастся.
С помощью awk:
awk '!/na/' file > new_file
Знак "!" значит не совпадают. «/na/» указывает шаблон «na». Вместе они означают несоответствие строк, содержащих шаблон na. Поведение awk по умолчанию — печатать, но вы также можете специально указать ему печатать (вызвать функцию печати )следующим образом:
awk '!/na/ {print}' file > new_file
Чтобы не печатать пустые строки в файле, используйте это регулярное выражение. !/^$/ Это говорит awk не совпадать с пустой строкой. Он будет совпадать, начиная с начала строки, обозначенной «^», до конца строки, обозначенной «$», без содержимого между ними. «&&» указывает использовать оба выражения при оценке каждой строки.
awk '!/na/ && !/^$/ {print}' file > new_file
С СЭД:
sed '/na/d' file > new_file
"/d указывает sed удалить строку, содержащую совпадающий шаблон "/na/"
Чтобы изменить исходный файл напрямую, без необходимости записи в новый файл, используйте опцию -i (на месте )с sed
sed -i '/na/d' file
Использование только оболочки bash со встроенным bash:
while read -r line; do [[ ! $line =~ na ]] && echo "$line"; done < file > o; mv o file
С Питоном:
with open('file', 'r') as rf:
with open('out', 'w') as of:
for line in rf:
if not "na" in line:
of.write(line)
Как и во всех других примерах, это не оставит пустой строки, учитывая образец ввода, указанный в исходном вопросе.
$ cat file
0.000
0.000
0.055
0.036
0.003
0.002
0.000
0.002
0.002
0.002
0.000
0.000
0.000
0.002
0.002
0.003
I tried with below 3 methods
1.using awk
command:awk '$0 !~/na/{print $0}' filename
2. using sed
sed -n '/na/!p' filename
3. using python
#!/usr/bin/python
import re
k=open('filename','r')
a=re.compile(r'[0-9]')
for i in k:
if re.search(a,i):
print i,
выход
0.000
0.000
0.055
0.036
0.003
0.002
0.000
0.002
0.002
0.002
0.000
0.000
0.000
0.002
0.002
0.003