我正在尝试使用 FreeBSD/bin/sh shell 驱动一组包含空间的文件:
user@host:~/temp/2011 $ find . | grep '03-11'
./01jan/ES 03-11.txt
./02feb/ES 03-11.txt
./03mar/ES 03-11.txt
./04apr/ES 03-11.txt
./05may/ES 03-11.txt
user@host:~/temp/2011 $ for i in `find . | grep '03-11'`; do echo "$i"; done
./01jan/ES
03-11.txt
./02feb/ES
03-11.txt
./03mar/ES
03-11.txt
./04apr/ES
03-11.txt
./05may/ES
03-11.txt
虽然我想得到:
user@host:~/temp/2011 $ find . | grep '03-11'
./01jan/ES 03-11.txt
./02feb/ES 03-11.txt
./03mar/ES 03-11.txt
./04apr/ES 03-11.txt
./05may/ES 03-11.txt
user@host:~/temp/2011 $ for i in `find . | grep '03-11'`; do echo "$i"; done
./01jan/ES 03-11.txt
./02feb/ES 03-11.txt
./03mar/ES 03-11.txt
./04apr/ES 03-11.txt
./05may/ES 03-11.txt
在这种情况下应该如何处理空间?
最佳答案
您需要将 IFS
设置为不包含空格字符的值。
例如:
(IFS=$'\n'; for i in `find . | grep '03-11'`; do echo "$i"; done)
参见 manual page了解详情。
关于sh - 如何遍历 FreeBSD/bin/sh 中包含空格的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65275503/