LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1809|回复: 14

仅用shell 能否读取文件中的第一个数

[复制链接]
发表于 2009-7-30 09:14:14 | 显示全部楼层 |阅读模式
仅用shell 能否读取文件中的第一个数
#cat  file
  17748 pts/2    00:00:00 a.out

我如何把 17748 取出来 ?
 楼主| 发表于 2009-7-30 09:41:02 | 显示全部楼层
自己测试得到
#!/bin/sh
  read -n 5 a < file
  echo $a
运行后得到 17748 , 但如果是 1774811 就不行了。因为-n 5指定只读 5个字符。
最后改为
#!/bin/sh
  read a b < file
  echo $a

running OK
回复 支持 反对

使用道具 举报

发表于 2009-7-30 22:19:53 | 显示全部楼层
head -1 file | awk '{print $1}'
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-3 09:50:12 | 显示全部楼层
谢谢。我是要在开发板上跑。它上面没有awk。
回复 支持 反对

使用道具 举报

发表于 2009-8-3 10:32:58 | 显示全部楼层
a=${a%%\ *}
回复 支持 反对

使用道具 举报

发表于 2009-8-3 11:25:43 | 显示全部楼层
学习了!顶下!
回复 支持 反对

使用道具 举报

发表于 2009-8-3 12:23:02 | 显示全部楼层
Post by xiachongbaogc;2012076
谢谢。我是要在开发板上跑。它上面没有awk。

没有awk,就用 cut:
  1. head -1 file | cut -d' ' -f1
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-6 09:08:55 | 显示全部楼层
Post by edz;2012087
a=${a%%\ *}


兄弟还能解释下。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-6 09:41:43 | 显示全部楼层
Post by biinn;2012132
没有awk,就用 cut:
  1. head -1 file | cut -d' ' -f1
复制代码


[xia@localhost ~]$ cat kk
29241 pts/2     00:00:00  bash
29362 pts/2     00:00:00  ps
[xia@localhost ~]$ head -1 kk | cut -d' ' -f1
29241
测试OK. 而且修改 -f1  to  -f2
[xia@localhost ~]$ head -1 kk |cut -d' ' -f2
pts/2

[xia@localhost ~]$ head -1 kk |cut -d' ' -f3

没有想象的显示“00:00:00”,是因为 “pts/2” 后空格太多了。 该怎么解决?
回复 支持 反对

使用道具 举报

发表于 2009-8-6 20:11:34 | 显示全部楼层
  1. $ cat  kk
  2. 17748 pts/2 00:00:00 a.out
  3. $ head -1 kk | cut -d ' ' -f 3
  4. 00:00:00
复制代码
-d 后面是单引号中的空格,
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表