Как редактировать спецсимволы в файлах Linux с помощью SED? - PullRequest
0 голосов
/ 06 июля 2018

Имя файла: File.txt Содержание:

Vignesh Mani Bani Ravi

Результат должен прийти с

"Vignesh", "Mani", "Bani", "Ravi"

Может кто-нибудь помочь мне, как я могу получить ожидаемый результат?

Я пробовал эту команду.

 sed -e 's/^ /" ",/g' File.txt

Это не работает. Пожалуйста, сообщите мне.

Ответы [ 4 ]

0 голосов
/ 06 июля 2018

Это может сработать для вас (GNU sed):

sed 's/\S\+/"&"/g;s/\s\+/, /g' file

Окружите непустое пространство двойными кавычками. Замените каждый набор пробелов запятой, за которой следует пробел.

0 голосов
/ 06 июля 2018
$ sed 's/ /", "/g; s/^\|$/"/g' file
"Vignesh", "Mani", "Bani", "Ravi"
0 голосов
/ 06 июля 2018

1-е решение: Если ваш фактический Input_file такой же, как показано в примере, то вам могут помочь следующие.

awk -v s1='"' -v s2=',' '{gsub(/ /,s1 s2 OFS s1);gsub(/^|$/,s1)} 1' Input_file

2-е решение:

awk -v s1='"' 'BEGIN{OFS=s1", "s1} {gsub(/^|$/,s1);$1=$1} 1' Input_file
0 голосов
/ 06 июля 2018

Я бы сделал это с помощью awk:

awk -v OFS=", " -v q='"' '{for(i=1;i<=NF;i++)$i=q $i q}7' file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...