Как мне удалить все с указанным «именем»

awk решение:

awk '$1~/.+,.+/{ split($1,a,","); $1=""; sub(/^ */,"",$0); 
     for(i=1;i<=length(a);i++) print a[i],$0; next }1' file

Вывод:

Class1 info1 info2 info3 info4
Class2 info1 info2 info3 info4
Class3 info1a info2a info3a info4a
Class4 info1b info2b1,info2b2 info3b info4b
Class5 info1b info2b1,info2b2 info3b info4b

  • $1~/.+,.+/ - строка обработки, если 1-й столбец содержит элементы, разделенные запятыми
  • split($1,a,",") - разделить 1-й столбец на массив элементов
0
13.07.2017, 09:36
1 ответ

Причин может быть несколько, и это также зависит от того, как вы его установили.

Сначала база данных locateсоздается по расписанию через cron. Если вы создадите файл, обновите базу данных через updatedb, удалите только что созданный файл, а затем попробуете locateего, он все еще будет в базе данных. Повторно создайте базу данных с помощью еще одного запуска updatedb, и файл не будет отображаться в locate.

Во-вторых, если вы установили его через apt, apt-getи т. д., то apt purge pscxrили apt-get purge pscxrдолжны сделать это, НО это удалит только файлы, созданные в процессе установки. Если вы редактируете файл, и ваш редактор автоматически создает файл резервной копии, эти файлы резервной копии все еще будут там, как и путь к каталогу для файлов. Обратите внимание, что если вам нужны другие пакеты для зависимостей, вам также нужно будет запустить apt-get autoremoveили apt autoremove.

Если вы установили из исходного кода, если у вас есть исходный каталог, в котором вы запускали команды make, тогда вы МОЖЕТЕ выполнить make uninstall, НО успех этого скрипта будет зависеть от самого make-файла. Однако не многие пакеты с исходным кодом включают деинсталляцию в make-файл...

Итак... как пользователь root, запустите updatedb, затем попробуйте выполнить команду locate, и если вы не отредактировали или не скопировали файлы по путям, указанным в пакете, все это должно исчезнуть...

3
28.01.2020, 02:25

Теги

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