- 论坛徽章:
- 1
|
本帖最后由 惟吾无为 于 2011-04-29 12:33 编辑
终于找到具体原因了, 在改变IFS时, 由于个人失误, 得到的IFS居然是空的, 不是MSYS的错...
----------
对文件列表进行处理.
find找的, 所以有个'.' , 想去掉这行, 并把剩下的内容按行保存到数组中.
待处理文件名为fl. 行中有空格.
# cat fl
link
.
dir
file
char dev
block dev
pipe
socket
自以为是地
IFS=$'\n'
filename=($(sed "/^\.$/d" fl))
结果后来才发现
${#filename[@]}=1
我想一个元素保存一行, 而非一个元素全文保存呐...
期待
filename[1]=link
filename[2]=dir
filename[3]=file
...
就是为'.'的行忽略掉, 其他的按顺序依次保存在数组中.
filename[0]另作他用.
概要:
1, 需要把为'.'的行去掉, 或者不让find显示'.'.
2, 把改变后的内容逐行保存到数组各元素中中.
要求方案尽可能简单.
最好别循环...
不知awk能否搞定. |
|