0
votes

Comment rejoindre toutes les nouvelles chaînes dans une citation unique ou double

Comment rejoindre toutes les nouvelles chaînes dans une citation unique ou double séparée par une virgule.

Exemple: H2>

J'ai des noms ci-dessous. P>

 $ awk '{print "\x22" $1" "$2 "\x22"}'| tr '\n' ','


4 commentaires

Nous encourageons donc nous encourageons les utilisateurs à ajouter leurs efforts, alors veuillez ajouter vos efforts dans votre question.


Désolé j'ai oublié de le faire mais je viens de mettre à jour que j'ai travaillé autour.


Soyez conseillé que la notation \ x22 est une extension GNU AWK et non utilisée par une autre version AWK. Il est toujours préférable d'utiliser des nombres octals. Pour la double citation, vous pouvez utiliser \ 042


Gros merci gars, avec awk '{imprimé "\ x22" {"\ x22"}' ici 0 $ 0 fait de la place avant et après le nom d'où je suis toujours en train d'utiliser Stricktly 1 $ 2 $ , exemple .. "James Kurt" Si je vais utiliser $ 0 .. mes deux cents à vous tous.


4 Réponses :


1
votes

Pourriez-vous s'il vous plaît essayer suivi.

awk -v lines=$(wc -l < Input_file) -v s1="\"" '   ##Starting awk program, creating variable lines which has total number of lines in Input_file and creating s1 variable with " in it.
BEGIN{                                            ##Starting BEGIN section of this program from here.
  OFS=", "                                        ##Setting OFS value as comma space here.
}
{
  printf("%s%s",s1 $0 s1,lines==FNR?ORS:OFS)      ##Printing current line and either printing space or new line as per condition.
}
'  Input_file                                     ##Mentioning Input_file name here.


0 commentaires

1
votes
awk '{printf "%s",(NR==1?"":",")"\042"$0"\042"}END{print ""}'
Note that the last END statement is only used to add the last new-line to the output. This makes it POSIX complaint.

0 commentaires

2
votes

Premier imprimé toutes les lignes avec le " code>, puis rejoignez les lignes avec une virgule: xxx pré>

au lieu de nouvelle ligne, vous pouvez simplement supprimer la fuite (ou la virgule de premier plan). : p> xxx pré>

avec SED ajoutez le " CODE> et maintenez les lignes, puis sur la dernière ligne, remplacez la nouvelle ligne avec la virgule et supprimez la commande principale et imprimez:

awk '{print "\x22" $0 "\x22"}' | paste -sd,


0 commentaires

1
votes

Ceci pourrait fonctionner pour vous (GNU SED):

sed -z 's/\n$//;s/.*/"&"/mg;s/\n/, /g;s/$/\n/' file


0 commentaires