Это зависит от того, какую оболочку и (к сожалению) какую систему вы используете. Bash, например, использует разные файлы запуска в зависимости от того, используется ли он как интерактивная или неинтерактивная оболочка, как описано в руководстве по bash.
В принципе, вы должны иметь возможность добавить export PATH=$HOME/bin:$PATH
в ваш файл ~/.bashrc
, который затем будет выполняться только для интерактивных не -логин оболочки. На практике некоторые системы настроены так, что они читают ~/.bashrc
также и для неинтерактивных оболочек.
Связанные вопросы:
Чтобы исправить разделители полей для последнего поля:
$ awk -F'|' '{a[$1"|"$2]=a[$1"|"$2]","$3} END{for(x in a)print x"|"substr(a[x],2)}' file.csv
A4690021|product.storeName|Cine
A4690021|product.parentCategory.id|999.54215013.999.54216013
A19129625|product.author|. VV.AA.
A4690021|product.director|Steven Spielberg
A4690021|product.actor|Laurel Cronin,Bob Hoskins,Caroline Goodall,Julia Roberts,Maggie Smith,Amber Scott,Charlie Korsmo,Robin Williams,Dustin Hoffman
A4690021|product.parentCat.displayName|Infantil
A4690021|product.bestSellers|Offline Best Seller,Online Best Seller
Преобразуем исходный файл в формат DOS/Windows:
$ unix2dos <file.csv >file.dos
$ awk -F'|' '{a[$1"|"$2]=a[$1"|"$2]","$3} END{for(x in a)print x"|"substr(a[x],2)}' file.dos
A4690021|product.storeName|Cine
A4690021|product.parentCategory.id|999.54215013.999.54216013
A19129625|product.author|. VV.AA.
A4690021|product.director|Steven Spielberg
,Dustin Hoffmanllactor|Laurel Cronin
A4690021|product.parentCat.displayName|Infantil
,Online Best SellerstSellers|Offline Best Seller
Это похоже на ваш проблемный вывод.
Решение - запустить dos2unix
или другую утилиту, чтобы удалить окончания строк DOS/Windows.
С GNU datamash :
datamash -t\| -g 1,2 collapse 3 <SEARCH_ECISTORE_PRD_MULTI_ES_s.csv
Результат:
A4690021|product.actor|Laurel Cronin,Bob Hoskins,Caroline Goodall,Julia Roberts,Maggie Smith,Amber Scott,Charlie Korsmo,Robin Williams,Dustin Hoffman
A4690021|product.director|Steven Spielberg
A4690021|product.bestSellers|Offline Best Seller,Online Best Seller
A4690021|product.parentCategory.id|999.54215013.999.54216013
A4690021|product.storeName|Cine
A4690021|product.parentCat.displayName|Infantil
A19129625|product.author|. VV.AA.
Возможный дубликат (потому что я когда-то делаю то же самое)
sed ':a;$!N;s/\(\(.*|\)[^|]\+\)\n\2/\1, /;ta;P;D' SEARCH_ECISTORE_PRD_MULTI_ES_s.csv
даст
A4690021|product.actor|Laurel Cronin, Bob Hoskins, Caroline Goodall, Julia Roberts, Maggie Smith, Amber Scott, Charlie Korsmo, Robin Williams, Dustin Hoffman
A4690021|product.director|Steven Spielberg
A4690021|product.bestSellers|Offline Best Seller, Online Best Seller
A4690021|product.parentCategory.id|999.54215013.999.54216013
A4690021|product.storeName|Cine
A4690021|product.parentCat.displayName|Infantil
A19129625|product.author|. VV.AA.