Удалить определенные строки

Тема Faient PPA (https://launchpad.net/~tiheum/+archive/equinox) официально не обновлена ​​для 13.10 (и не имела обновлений через 36 недель с момента написания). Последний поддерживаемый релиз - 13.04.

Ниже приведенные шаги добавят 13.04 (Raring) Faence PPA в вашу систему. Я предполагаю, что это будет нормально работать, хотя я не могу проверить себя.

Выполнить эти команды в терминале, чтобы добавить Raring PPA:
sudo add-apt-repository 'deb http://ppa.launchpad.net/tiheum/equinox/ubuntu raring main'
sudo apt-get update
Установить тему с помощью некоторых из приведенных ниже команд: Faience GTK / Тема темы GNOME Shell (я считаю, это тот, который вам нужен)
sudo apt-get install faience-theme
Тема значка Faience:
sudo apt-get install faience-icon-theme
Тема темы Faenza:
sudo apt-get install faenza-icon-theme
Установите один из этих инструментов, чтобы сменить тему на тему Faience: Unity Tweak Tool (Мой инструмент по выбору)
sudo apt-get install unity-tweak-tool
Ubuntu Tweak Следуйте инструкциям, приведенным здесь, они также должны работать в 13.10.
1
задан 24 November 2015 в 19:08

2 ответа

Использование скрипта Python:

#! /usr/bin/env python3
import sys
with open (sys.argv[1]) as f:
  rows=[list(map(str.strip, line.split(','))) for line in f.readlines()]
  result=rows[0:1]
  for r in rows:
    if r[0] != result[-1][0] or float(r[1]) >= float(result[-1][1])+10:
      result.append(r)
  print("\n".join([",".join(res) for res in result]))

Скопируйте сценарий выше и вставьте его в файл с именем csvfilter.py, например. Сделайте это с помощью chmod +x csvfilter.py.

Затем вы можете запустить его из командной строки с помощью файла csv для обработки (я сохранил ваш пример из вопроса как source.csv) в качестве аргумента: [!d3 ]

$ ./csvfilter.py source.csv 
Test1,0.0,1
Test1,10.0,3
Test2,0.1,1
Test2,11.0,7

Сценарий не будет изменять оригинальный файл, а просто напечатает новую версию до стандартного вывода. Кроме того, любое предыдущее форматирование с использованием пробелов будет отброшено.

Чтобы заменить исходный файл на модифицированную версию, перенаправите вывод обратно в исходный файл:

$ ./csvfilter.py source.csv > source.csv

Вы также можете сохранить измененную версию в виде файла: [!d6 ]

$ ./csvfilter.py source.csv > modified.csv
1
ответ дан 23 May 2018 в 15:32
  • 1
    Это нормально или вы предпочитаете, чтобы исходное форматирование пробелов сохранялось, или исходный файл был напрямую изменен? – Byte Commander 24 November 2015 в 17:58
  • 2
    OP сказал, что все в порядке: askubuntu.com/questions/701948/… – kos 24 November 2015 в 18:11
  • 3
    Это нормально, пробелы были просто для облегчения чтения. Я буду строить графики из данных, поэтому числа не будут прочитаны напрямую. – 0xbaadf00d 24 November 2015 в 18:12

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

perl -lane 'if($.==1||"$F[0]"ne"$F0"||$F[1]>=$F1+10){print;$F1=@F[1]}$F0=@F[0]' file

Expanded:

if($. == 1 || "$F[0]" ne "$F0" || $F[1] >= $F1 + 10){
    print;
    $F1 = @F[1]
}
$F0 = @F[0]
if($.==1||"$F[0]"ne"$F0"||$F[1]>=$F1+10){print;$F1=@F[1]}: если номер текущей строки 1, первое поле текущей строки равно первое поле предыдущей строки или второе поле текущей строки больше или равно второму полю предыдущей строки, печатает текущую строку и присваивает значение второго поля текущей строки F1; $F0=@F[0]: присваивает значение для первого поля текущей строки F0;
% cat file
Test1,  0.0, 1
Test1,  0.2, 1
Test1, 10.0, 3
Test2,  0.1, 1
Test2,  0.3, 3
Test2,  1.0, 5
Test2, 11.0, 7
% perl -lane 'if($.==1||"$F[0]"ne"$F0"||$F[1]>=$F1+10){print;$F1=@F[1]}$F0=@F[0]' file
Test1,  0.0, 1
Test1, 10.0, 3
Test2,  0.1, 1
Test2, 11.0, 7
0
ответ дан 23 May 2018 в 15:32

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

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