use \000 in sed
Dan Nelson
dnelson at allantgroup.com
Thu Jan 29 07:42:40 PST 2004
In the last episode (Jan 29), Zhang Weiwu said:
> Hello. I wish to see all the files in some pathes in a string.
>
> Say, I wish to list all files in $PATH and manpath(1)
>
> What I can think of is to use
> #manpath | sed "s/:/ /g" |xargs ls
> (This is useful when auto-completing man command in a shell, say, csh).
>
> This works, but the command is wrong when a path contain a space in it.
>
> I think a better way is to replace ":" with \000, the "NULL". In this way I
> can use "xargs -0" to pass all pathes to ls(1)
> #manpath | sed s/:/\000/g" |xargs -0 ls
I'm not sure that sed can process \123-style octal characters, since it
already uses the \ character for backreferences. Since you're only
replacing one letter, you can use tr:
manpath | tr ':' '\000' | xargs -0 ls
--
Dan Nelson
dnelson at allantgroup.com
More information about the freebsd-questions
mailing list