[问题]把文本逐行保存到bash数组的简单办法.
时间:2011-04-28
来源:互联网
本帖最后由 惟吾无为 于 2011-04-28 19:46 编辑
对文件列表进行处理.
find找的, 所以有个'.' , 想去掉这行, 并把剩下的内容按行保存到数组中.
待处理文件名为fl.
# cat fl
link
.
dir
file
chardev
blockdev
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能否搞定.
对文件列表进行处理.
find找的, 所以有个'.' , 想去掉这行, 并把剩下的内容按行保存到数组中.
待处理文件名为fl.
# cat fl
link
.
dir
file
chardev
blockdev
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能否搞定.
作者: 惟吾无为 发布时间: 2011-04-28
- xiabao@6P9SN2X ~/test
- $ cat urfile
- .
- link
- dir
- file
- chardev
- blockdev
- pipe
- socket
-
- xiabao@6P9SN2X ~/test
- $ filename=(`cat urfile | tr '\n' ' '`)
-
- xiabao@6P9SN2X ~/test
- $ echo ${#filename[@]} ${filename[1]} ${filename[2]} ${filename[3]}
- 8 link dir file
作者: xiaopan3322 发布时间: 2011-04-28
学习了。
作者: zooyo 发布时间: 2011-04-28
回复 惟吾无为
another way:
复制代码
another way:
- eval `awk '!/^\.$/{print "filename["++i"]="$0}' file`
作者: yinyuemi 发布时间: 2011-04-29
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28