Несколько подходов:
Для file1
(с двойными кавычками):
--awkподход:
awk -F'"' '{ r=""; for(i=1;i<NF;i++)
if ($i~/^[[:alnum:]]/) r=(r!="")? r OFS $i : $i; print r }' OFS='\t' file1
--sedподход:
sed 's/","/\t/g; s/"//g;' file1
Вывод (для обоих подходов):
Jhon Carpenter CA,TX,NJ
Mike Painter WA,GA,MI
----------
Для файл2
(без двойных кавычек) - достаточно применить tr
команда:
tr ',' '\t' <file2
Вывод:
EMP1 123456 CA
EMP2 456789 TX
----------
Унифицированный подход для условия «одной и той же команды должно быть достаточно для обоих типов файлов »:
awk -v quoted=$(grep -cm1 '"' file1) 'BEGIN{ FS=(quoted)? "\"" : ","; }
{ r=""; for(i=1;i<=NF;i++) if(!quoted || $i~/^[[:alnum:]]/) r=(r!="")? r OFS $i : $i;
print r }' OFS='\t' file1
Если вам просто нужен дистрибутив Linux для изучения сценариев оболочки, я искренне рекомендую установить Linux на виртуальную машину.
Используйте, например, VirtualBox.
Таким образом, у вас будет возможность беспрепятственно переключаться между оболочкой Linux и более привычной средой Windows, а также вы сможете протестировать различные схемы разбиения, файловые системы, сетевые конфигурации и т. д., не опасаясь уничтожения файлов в Окна. Это также означало бы меньше проблем с, возможно, неподдерживаемым оборудованием.
Позже, когда вы почувствуете себя более уверенно, вы можете установить Linux (или какой-либо другой Unix )на машину либо как решение с двойной -загрузкой, либо как единственную ОС на компьютере (и запустите Windows внутри VirtualBox в системе Linux ).
Но, как я уже сказал, если вы просто хотите изучить сценарии оболочки в Linux, установите какое-нибудь программное обеспечение виртуальной машины, создайте пустую виртуальную машину с образом диска объемом 20 ГБ или около того и загрузите установочный ISO-образ.
Я запускаю OpenBSD 6.1 без X11 в VirtualBox поверх ноутбука с Windows 10. Это моя основная повседневная рабочая платформа уже пару лет.