mapfile命令 – 从标准输入读取行并赋值到数组
2024-01-09 本站作者 【 字体:大 中 小 】
mapfile命令用于从标准输入或文件描述符读取行并赋值到数组
语法格式: mapfile [参数]
常用参数:
-n count | 从标准输入中获取最多count行,如果count为零那么获取全部 |
-O origin | 从数组下标为origin的位置开始赋值,默认的下标为0 |
-s count | 跳过对前count行的读取 |
参考实例
先创建一个示例用的文件alpha.log,每行一个小写字母,共26行:
[root@linuxcool ~]# echo {a..z} | tr " " "\n" >alpha.log [root@linuxcool ~]# cat alpha.log a b c d e f g h i j k l m n o p q r s t u v w x y z
读取alpha.log文件并将每一行存储到数组myarr中(如果不指定,则存储到默认的MAPFILE数组中):
[root@linuxcool ~]# mapfile myarr <alpha.log [root@linuxcool ~]# echo ${myarr[@]} a b c d e f g h i j k l m n o p q r s t u v w x y z [root@linuxcool ~]# echo ${myarr[2]} c
从标准输入中获取最多6行数据:
[root@linuxcool ~]# mapfile -n 6 myarr <alpha.log [root@linuxcool ~]# echo ${myarr[2]} c [root@linuxcool ~]# echo ${myarr[@]} a b c d e f
从数组下标为6的位置开始赋值:
[root@linuxcool ~]# mapfile -O 6 myarr <alpha.log [root@linuxcool ~]# echo ${myarr[@]} g h i j k l a b c d e f g h i j k l m n o p q r s t u v w x y z
跳过对前6行的读取:
[root@linuxcool ~]# mapfile -s 6 myarr <alpha.log [root@linuxcool ~]# echo ${myarr[@]} g h i j k l m n o p q r s t u v w x y z
与该功能相关的Linux命令:
- tzselect命令 – 查看设置时区
- lsmod命令 – 显示已加载模块状态
- tune2fs命令 – 管理文件系统参数
- depmod命令 – 生成模块映射文件
- ps命令 – 显示进程状态
- lsof命令 – 查看文件的进程信息
- sh命令 – shell命令语言解释器
- taskset命令 – 绑定进程与CPU核心
- help命令 – 显示帮助信息
- reboot命令 – 重新启动计算机
猜你喜欢
扫地机器人为什么卖不出去?看完这些理由,你一点都不惊讶。
2023年伊拉克主要智能手机制造商市场份额排名
你知道抢劫有多难吗?华为Mate 60 RS非凡大师评测
微信聊天气泡怎么设置
三星笔记本电脑怎么连接无线网wifi 三星笔记本电脑怎样连接无线网wifi
如何使用北斗导航系统
华为和苹果手机哪个更好(2款品牌手机哪个更好用)
魅族21终于忍不住放大了!11月发布的可能性很大,满屏惊喜!
手机有最好的音质播放软件,听众有福了。
四款华为手机价值“缺失”,8+256GB已经降到最低,强烈推荐!
华为哪款手机玩游戏性能最好
扩音器什么品牌音质最好(哪个品牌的扩音器音质最佳?)
铠侠固态硬盘怎么样(铠侠固态硬盘的表现如何?)
公认最静音的电风扇(国内10大电风扇品牌排行)
光信号闪红灯会自己好吗(路由器闪红灯是怎么回事)
联想k29为什么是神机(联想k29怎么样)
国内冰箱排名前十的品牌(质量最好的10大冰箱品牌)
凯夫拉手机壳怎么样(凯夫拉手机壳的表现如何?)
键盘突然没反应是怎么回事
垃圾处理器有必要买吗(垃圾处理器值得买吗)