RichZR
1
Hi,
I am trying to insert Inverted Commas around all the numeric values within a comma seperated string / variable.
1111,2222,3333,4444
I would like it to be:
'1111','2222','3333','4444'
Note - This string could have a differing amount of numeric values each time the variable is created.
e.g.
Instance 1 - 1111,2222,3333,4444
Instance 2 - 2222,3333
Any help would be much appreciated.
Cheers
zaxxon
2
$> V="'"
$> echo 1111,2222,3333,4444| sed 's/,/'$V','$V'/g; s/^/'$V'/; s/$/'$V'/'
'1111','2222','3333','4444'
birei
3
Hi RichZR,
Using Perl:
$ cat script.pl
use warnings;
use strict;
while ( <DATA> ) {
chomp;
s/^|(?=,)|(?<=,)|$/'/g;
printf qq[$_\n];
}
__DATA__
1111,2222,3333,4444
2222,3333
$ perl script.pl
'1111','2222','3333','4444'
'2222','3333'
Regards,
Birei
drl
4
Hi.
echo 1111,2222,3333,4444 | sed "s/\([0-9][0-9]*\)/'\1'/g"
producing:
'1111','2222','3333','4444'
Where [']
is a straight single-quote, an apostrophe, Dec 39:
Dec Hex Dec Hex Dec Hex Dec Hex Dec Hex Dec Hex Dec Hex Dec Hex
0 00 NUL 16 10 DLE 32 20 48 30 0 64 40 @ 80 50 P 96 60 ` 112 70 p
1 01 SOH 17 11 DC1 33 21 ! 49 31 1 65 41 A 81 51 Q 97 61 a 113 71 q
2 02 STX 18 12 DC2 34 22 " 50 32 2 66 42 B 82 52 R 98 62 b 114 72 r
3 03 ETX 19 13 DC3 35 23 # 51 33 3 67 43 C 83 53 S 99 63 c 115 73 s
4 04 EOT 20 14 DC4 36 24 $ 52 34 4 68 44 D 84 54 T 100 64 d 116 74 t
5 05 ENQ 21 15 NAK 37 25 % 53 35 5 69 45 E 85 55 U 101 65 e 117 75 u
6 06 ACK 22 16 SYN 38 26 & 54 36 6 70 46 F 86 56 V 102 66 f 118 76 v
7 07 BEL 23 17 ETB 39 27 ' 55 37 7 71 47 G 87 57 W 103 67 g 119 77 w
8 08 BS 24 18 CAN 40 28 ( 56 38 8 72 48 H 88 58 X 104 68 h 120 78 x
9 09 HT 25 19 EM 41 29 ) 57 39 9 73 49 I 89 59 Y 105 69 i 121 79 y
10 0A LF 26 1A SUB 42 2A * 58 3A : 74 4A J 90 5A Z 106 6A j 122 7A z
11 0B VT 27 1B ESC 43 2B + 59 3B ; 75 4B K 91 5B [ 107 6B k 123 7B {
12 0C FF 28 1C FS 44 2C , 60 3C < 76 4C L 92 5C \ 108 6C l 124 7C |
13 0D CR 29 1D GS 45 2D - 61 3D = 77 4D M 93 5D ] 109 6D m 125 7D }
14 0E SO 30 1E RS 46 2E . 62 3E > 78 4E N 94 5E ^ 110 6E n 126 7E ~
15 0F SI 31 1F US 47 2F / 63 3F ? 79 4F O 95 5F _ 111 6F o 127 7F DEL
The curly version is [']
, pasted from Quotation mark - Wikipedia
Best wishes ... cheers, drl
BeefStu
5
cat /tmp/xx
111,222,3333,8484848,333,1111
111,222,3333,8484848,333,1111
cat yy.ksh
awk -v QUOTE="'" '
BEGIN{FS=","}
{
for(i=1;i<=NF;i++)
{
if (i == NF)
printf("%s%s%s\n",QUOTE,$(i),QUOTE);
else
printf("%s%s%s,",QUOTE,$(i),QUOTE);
}
}' /tmp/xx