[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: string escaping in bash
From: |
Alex fxmbsw7 Ratchev |
Subject: |
Re: string escaping in bash |
Date: |
Fri, 12 Mar 2021 21:47:53 +0100 |
as a small side answer
by greycat his tclsh version
http://paste.wooledge.org/6101
unicorn:~$ tclsh
% set input {tab\tnewline\nbackslash\\fin}; set output [string map {\\t \t
\\n \n \\\\ \\} $input]; puts $input; puts $output
tab\tnewline\nbackslash\\fin
tab newline
backslash\fin
On Fri, Mar 12, 2021 at 9:25 PM Alex fxmbsw7 Ratchev <fxmbsw7@gmail.com>
wrote:
> this is without keep over and does the stupid non edge cases
> maybe you can give me better test cases ?
>
> i=-1 res=( ) list=( '\one' '\\Two' '\\\Three' '\\\\four' '\\\\\five' )
> right=( '\one' '\Two' '\\Three' '\\four' '\\\five' ) ; for str in
> "${list[@]}" ; do str=${str//\\n/$'\n'} str=${str//\\t/$'\t'}
> res[++i]=${str//\\\\/\\} ; printf '%d %s %s\n' $i "${res[i]}" "${right[i]}"
> ; done
> 0 \one \one
> 1 \Two \Two
> 2 \\Three \\Three
> 3 \\four \\four
> 4 \\\five \\\five
>
> On Fri, Mar 12, 2021 at 9:20 PM Alex fxmbsw7 Ratchev <fxmbsw7@gmail.com>
> wrote:
>
>> so i failed the backslash only method
>> there may be a method if it doesnt bug the same to replace first the
>> replacement of \\ then later back
>>
>> till then only a nonexist string is there as place holder
>> ill test if i even need a place holder, hm ?
>>
>> v=nonexist// i=-1 res=( ) list=( '\one' '\\Two' '\\\Three' '\\\\four'
>> '\\\\\five' ) right=( '\one' '\Two' '\\Three' '\\four' '\\\five' ) ; for
>> str in "${list[@]}" ; do str=${str//\\\\/$v} str=${str//\\n/$'\n'}
>> str=${str//\\t/$'\t'} res[++i]=${str//$v/\\} ; printf '%d %s %s\n' $i
>> "${res[i]}" "${right[i]}" ; done
>> 0 \one \one
>> 1 \Two \Two
>> 2 \\Three \\Three
>> 3 \\four \\four
>> 4 \\\five \\\five
>>
>> On Fri, Mar 12, 2021 at 9:09 PM Alex fxmbsw7 Ratchev <fxmbsw7@gmail.com>
>> wrote:
>>
>>> thers just the question of \o or \bla should return in \o or o or what
>>>
>>> On Fri, Mar 12, 2021 at 9:02 PM Alex fxmbsw7 Ratchev <fxmbsw7@gmail.com>
>>> wrote:
>>>
>>>> i need some details of peng
>>>> i wanted to make test cases for the backslashes
>>>>
>>>> list=( '\one' '\\Two' '\\\Three' '\\\\four' '\\\\\five' )
>>>>
>>>> which should result in output of
>>>>
>>>> right=( '\one' '\Two' '\\Three' '\\four' '\\\five' )
>>>>
>>>> there is collision
>>>>
>>>> please review and write
>>>> especially if 'right' looks right
>>>>
>>>> On Fri, Mar 12, 2021 at 8:46 PM Alex fxmbsw7 Ratchev <fxmbsw7@gmail.com>
>>>> wrote:
>>>>
>>>>> thank you, fixing it.. trying some backslash only method now [or
>>>>> wish..]
>>>>>
>>>>> thank you tho !
>>>>>
>>>>> On Fri, Mar 12, 2021 at 8:45 PM Lawrence Velázquez <vq@larryv.me>
>>>>> wrote:
>>>>>
>>>>>> > On Mar 12, 2021, at 2:28 PM, Alex fxmbsw7 Ratchev <
>>>>>> fxmbsw7@gmail.com> wrote:
>>>>>> >
>>>>>> > i dunno ..thats what its supposed to give, \\ give a \
>>>>>> > so the dude wanted in his initial mail[s]
>>>>>>
>>>>>> My fault, this is what I meant to send:
>>>>>>
>>>>>> bash-5.1$ str=$'contains ^A: \1'
>>>>>> bash-5.1$ printf '%s' "$str" | od -ta -tx1
>>>>>> 0000000 c o n t a i n s sp ^ A : sp soh
>>>>>>
>>>>>> 63 6f 6e 74 61 69 6e 73 20 5e 41 3a 20 01
>>>>>>
>>>>>> 0000016
>>>>>> bash-5.1$ str=${str//\\\\/$'\1'} str=${str//\\n/$'\n'}
>>>>>> str=${str//\\t/$'\t'}
>>>>>> bash-5.1$ str=${str//$'\1'/\\}
>>>>>> bash-5.1$ printf '%s' "$str" | od -ta -tx1
>>>>>> 0000000 c o n t a i n s sp ^ A : sp \
>>>>>>
>>>>>> 63 6f 6e 74 61 69 6e 73 20 5e 41 3a 20 5c
>>>>>>
>>>>>> 0000016
>>>>>>
>>>>>> As you can see, the SOH character (^A, \001, etc.) in the original
>>>>>> string has been mangled.
>>>>>>
>>>>>> --
>>>>>> vq
>>>>>
>>>>>
- Re: string escaping in bash, (continued)
- Re: string escaping in bash, Alex fxmbsw7 Ratchev, 2021/03/12
- Re: string escaping in bash, Alex fxmbsw7 Ratchev, 2021/03/12
- Re: string escaping in bash, Lawrence Velázquez, 2021/03/12
- Re: string escaping in bash, Alex fxmbsw7 Ratchev, 2021/03/12
- Re: string escaping in bash, Lawrence Velázquez, 2021/03/12
- Re: string escaping in bash, Alex fxmbsw7 Ratchev, 2021/03/12
- Re: string escaping in bash, Alex fxmbsw7 Ratchev, 2021/03/12
- Re: string escaping in bash, Alex fxmbsw7 Ratchev, 2021/03/12
- Re: string escaping in bash, Alex fxmbsw7 Ratchev, 2021/03/12
- Re: string escaping in bash, Alex fxmbsw7 Ratchev, 2021/03/12
- Re: string escaping in bash,
Alex fxmbsw7 Ratchev <=
- Re: string escaping in bash, Lawrence Velázquez, 2021/03/12
- Re: string escaping in bash, Alex fxmbsw7 Ratchev, 2021/03/12
- Re: string escaping in bash, Alex fxmbsw7 Ratchev, 2021/03/12
- Re: string escaping in bash, Pier Paolo Grassi, 2021/03/12
- Re: string escaping in bash, Alex fxmbsw7 Ratchev, 2021/03/12
- Re: string escaping in bash, Pier Paolo Grassi, 2021/03/12
Re: string escaping in bash, Eli Schwartz, 2021/03/12
Re: string escaping in bash, Koichi Murase, 2021/03/13