Hongyi Zhao on Wed, 11 Jan 2023 09:43:17 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Fwd: Programmatically obtain a complete list of commands and keywords for updating the PARI/GP third-party IDE tools. |
---------- Forwarded message --------- From: Hongyi Zhao <hongyi.zhao@gmail.com> Date: Wed, Jan 11, 2023 at 4:33 PM Subject: Re: Programmatically obtain a complete list of commands and keywords for updating the PARI/GP third-party IDE tools. To: Joël Bleuse <joel.bleuse@cea.fr> On Wed, Jan 11, 2023 at 4:01 PM Joël Bleuse <joel.bleuse@cea.fr> wrote: > > > Strangely, if I combine the above two sed commands into a single sed > call, the last line will be blank in the output: > > werner@X10DAi:~$ echo '?*' | gp -fq | grep -v 'type RETURN' | sed -Ee > 's/[ ]+/\n/g;/^$/d' | tail | cat -A > znconreychar$ > znconreyconductor$ > znconreyexp$ > znconreylog$ > zncoppersmith$ > znlog$ > znorder$ > znprimroot$ > znstar$ > $ > werner@X10DAi:~$ > > Best, > Zhao > > The sed documentation states: > > In a substitution command, the w flag writes the substitution result to a file, and the e flag executes the subsitution result as a shell command. As with the r/R/w/W/e commands, these must be terminated with a newline. If whitespace, comments or semicolons are found, they will be included in the shell command or filename, leading to unexpected results: > > which means that one cannot expect sed to properly behave if one adds > a command after a substitution with a semicolon separator Thank you for pointing this out. The above documentation only exists in info, not in man: werner@X10DAi:~$ sed --version |head -3 sed (GNU sed) 4.8 Packaged by Debian Copyright (C) 2020 Free Software Foundation, Inc. werner@X10DAi:~$ info sed |grep -A5 -i 'In a substitution command' In a substitution command, the 'w' flag writes the substitution result to a file, and the 'e' flag executes the subsitution result as a shell command. As with the 'r/R/w/W/e' commands, these must be terminated with a newline. If whitespace, comments or semicolons are found, they will be included in the shell command or filename, leading to unexpected results: werner@X10DAi:~$ man sed |grep -i 'In a substitution command' werner@X10DAi:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.10 Release: 22.10 Codename: kinetic Best, Zhao -- Assoc. Prof. Hongsheng Zhao <hongyi.zhao@gmail.com> Theory and Simulation of Materials Hebei Vocational University of Technology and Engineering No. 473, Quannan West Street, Xindu District, Xingtai, Hebei province