Usted puede hacer todo el cosa como esta:
% sh -c `sed '[email protected]^.\(.*\)@md5sum \[email protected]' <./dirlist.txt`
Realmente, estoy pensando que puede hacer que esto sea mucho más eficiente, pero no sé qué está generando su lista. Si puede hacerlo desde pipe
, o ejecutar ese comando a través de heredoc
para mantener su salida en buen estado, puede hacer que este trabajo fluya, probablemente.
EDIT:
OK, que dicen que es de un "volcado ls". Bueno, aquí hay algo un poco flexible:
% ls_dump() {
> sed '[email protected]^.\(.*\)[email protected] \[email protected]' <<_EOF_ | sh -s
>> `ls ${@}`
>> _EOF_
> }
% ls_dump -all -args -you /would/normally/give/ls
<desired output>
Creo que esto solo llama a una sola subcapa en total. Debería ser bastante bueno, pero en mi opinión, find ... -exec md5sum {} ... +
es probablemente más seguro, más rápido y todo lo que necesita.
Edit2:
OK, por lo que ahora realmente responderá a la pregunta. Para quitar el primer carácter de una cadena en cualquier consola compatible con POSIX sólo se necesita mirar a la expansión de parámetros como:
${string#?}
-Mike
Realmente no hay necesidad de [crosspost] (http://superuser.com/questions/306947/how-to-remove-first-dot). –