Если вы имеете в виду, вам нужно передать каждый каталог в стандартный ввод:
convAll ()
{
while read line
do
echo -e "$line\n0" | trjconv -s run.tpr -f run.xtc -pbc mol -ur compact -o unwrap
done
}
ls | grep -E 'us_-?[0-9]\.[0-9]+' | convAll
# NOTE: There's probably an even shorter one-liner version of this that uses `xargs`, but
# I'll leave that as an exercise to the reader.
Если вы имеете в виду, вам нужно передать каждый каталог в качестве дополнительного аргумента:
ls | grep -E 'us_-?[0-9]\.[0-9]+' | tr '\n' '\0' | \
xargs -0 -n 1 trjconv -s run.tpr -f run.xtc -pbc mol -ur compact -o unwrap
Если вы имеете в виду что вам нужно cd
- диск в каждой директории:
convAll ()
{
while read line
do
(\
cd "$line" && \
trjconv -s run.tpr -f run.xtc -pbc mol -ur compact -o unwrap || \
echo "Command failed for '$line'." >&2 \
)
done
}
ls | grep -E 'us_-?[0-9]\.[0-9]+' | convAll