Я думаю, что это проще с awk
. Вы можете попробовать что-то вроде этого:
$ awk -v v='"' 'BEGIN{FS=OFS=v}{gsub(",","",$2);gsub("\"","",$0);print }' file.txt
0,1,,,10815197,
6,7,010202,,5589,
6,7,010202,,589,
awk
, который использует регулярное выражение -v v='""'
, чтобы использовать его в качестве разделителя полей. FS=OFS=v
вы говорите, что разделитель полей такой же, как и разделитель выходных полей, которым является "
. gsub(",","",$2)
замените ,
ничем на втором поле $2
(разделенном в начале и в конце "
). gsub("\","",$0)
берет всю строку и заменяет "
ничем перед распечаткой строки. Самый простой способ управления репозиториями, который я нашел, — это разместить их в отдельных файлах в /etc/apt/sources.list.d/
. Таким образом, отключить репозиторий так же просто, как переместить файл из /etc/apt/sources.list.d/repo.list
в /etc/apt/sources.list.d/repo.list.bak
, а повторно -включить репо так же просто, как пойти другим путем. Вы даже можете создать скрипт, который временно отключает репозиторий, перемещая файл, запуская обновление/установку/что угодно, а затем снова перемещая файл обратно.
Первоначальный вопрос заключался в том, как запустить apt с отключенным репозиторием только для одного выполнения. На самом деле нет простого способа сделать это. Технически вы можете дать команде apt другую конфигурацию, используя опции -o и/или -c, но это, вероятно, потребует больше усилий, чем оно того стоит.
С помощью команды добавления -apt -репозитория вы можете легко добавлять и удалять репозитории. Это самый практичный способ решить исходный вопрос, который я вижу.
Если вы говорите об одном из компонентов дистрибутива, таких как ограниченный доступ, вселенная, мультивселенная и т. д., вы можете использовать только это ключевое слово:
sudo add-apt-repository --remove multiverse
sudo apt update
sudo apt install whatever
sudo add-apt-repository multiverse
В противном случае вам нужно будет использовать полную строку deb:
repo="deb http://some.repo.com/foo bionic main"
sudo add-apt-repository --remove "$repo"
sudo apt update
sudo apt install whatever
sudo add-apt-repository "$repo"
--remove
удалит репозиторий из sources.list, а также все файлы.list в sources.list.d. Однако следует отметить, что (, если ваше репо не имеет форму ppa:user/somerepo
), добавление его снова поместит его в sources.list --, а не в файл в sources.list.d.