Intereting Posts
Возврат только содержимого до и после номера строки с разными совпадающими словами Добавить другой IP-адрес в интерфейс связывания Сценарий Bash для исправления имен файлов Почему «ls -L» печатает имя самой ссылки, а не имя файла, на который указывает ссылка? Я не могу получить доступ к своему USB-устройству после команды mkfs.ntfs atom не может быть запущен, потому что libgtk-x11-2.0.so.0 не найден, но ldd может найти его Использование winexe для запуска команд «wmic» на машине Windows Какова концепция дисков в Unix Systems? Разрешить хосту ssh в гостевой QEMU, но отключить все другие сети curl: (35) error: 14077438: SSL-процедуры: SSL23_GET_SERVER_HELLO: внутренняя ошибка предупреждения tlsv1 Автоматизация slappasswd NFS монтируется с неподходящими UID / именами пользователей Отобразить недопустимые пути к допустимым путям файлов Как предотвратить шлоот от переопределения файла passwd и других файлов, уже присутствующих в chrooted системе? Есть ли способ узнать, какие веб-страницы доступны клиенту на веб-сервере UNIX?

как заменить разделитель между двумя другими разделителями в unix

У меня есть строка, как показано ниже:

engineer,doctor,"987,345,123",engineer 

Я хотел изменить его ниже в unix:

 engineer,doctor,"987345123",engineer 

Использование awk когда целевой столбец находится в фиксированной позиции, например, $2 здесь.

 awk -F\" '{gsub(",","", $2)}1' OFS=\" infile.txt 

выше, определитель F ield, который мы определили " и с помощью gsub(",","",$2) мы заменяем все запятые пустой строкой в ​​поле № 2 $2 1 в конце – это управление печатью awk и, наконец, с OFS=\" мы говорим awk, чтобы снова напечатать все поля с помощью разделителя.

В общем случае:

 awk -F\" '{for (i=2;i<=NF;i+=2)gsub(",","",$i)}1' OFS=\" infile.txt 

Входные данные:

 engineer,doctor,"987,345,123",engineer engineer,doctor,"123", "987,345,123",engineer engineer,doctor,"987,345,123","123,123",engineer "123,456,789",engineer,doctor,"987345123","123123",engineer engineer,doctor,"987345123","123123",engineer,"123,456,78,9" 

Результатом будет:

 engineer,doctor,"987345123",engineer engineer,doctor,"123", "987345123",engineer engineer,doctor,"987345123","123123",engineer "123456789",engineer,doctor,"987345123","123123",engineer engineer,doctor,"987345123","123123",engineer,"123456789"