在为这样的循环,如何防止文件名扩展为循环在bash
for i in `cat *.input`; do
echo "$i"
done
如果输入文件的一个包含条目像*a
,会,并给 文件名中的“一结束”。
有没有防止这种文件名扩展的一个简单的方法?
由于使用多个文件,globbing(set -o noglob
)不是 不错的选择。我也应该能够过滤的cat
到 特殊字符转义输出,但
for i in `cat *.input | sed 's/*/\\*'`
...
还是引起了*a
扩大,而
for i in `cat *.input | sed 's/*/\\\\*'`
...
给我\*a
(包括反斜线)。 [我想这是一个不同的 问题虽然]
你想要做的事,每个行或在输入文件中的每个字?因为如果其中一个输入文件包含例如FOO跳回到bar.txt那么for循环会做一个迭代与我设置为foo,和一个与我设置为跳回到bar.txt – 2016-05-10 14:48:34