LinuxSir.cn,穿越时空的Linuxsir!

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

如何使用shell读入一行?

[复制链接]
发表于 2003-9-27 16:48:05 | 显示全部楼层 |阅读模式
如何才能从文件中读入一行,不管一行里有没有空格,然后再打印该行?
发表于 2003-9-27 16:59:58 | 显示全部楼层
你首先要知道是哪一行。
cat -n filename|less
打印出那一行。
head -n number filename|tain -n 1

我就懂这个了。不知道还有更好的吗?
发表于 2003-9-27 17:09:31 | 显示全部楼层
sed -n Np filename
其中:N为行号
 楼主| 发表于 2003-9-27 19:22:45 | 显示全部楼层
如果是用循环读每一行呢?
比如:
1 2 3
4 5 6
做为两行来读
发表于 2003-9-27 21:27:24 | 显示全部楼层
1 2 3
4 5 6
是行号???还是...内容?
读每一行:
while read line;do echo $line;done<urfile
发表于 2003-9-27 22:58:10 | 显示全部楼层
每3行合并为1行顺序读出:
  1. [/home/javalee/myshell]n=1;m=3;while ((n<=$(cat tmp|wc -l)));do sed -n ${n},${m}p tmp|tr "\n"  " ";echo "\n";((n+=3));((m+=3));done|tr -s "\n"
复制代码
 楼主| 发表于 2003-9-28 08:52:23 | 显示全部楼层
就是有一个文件a,里面的内容是:
1 2 3
4 5 6
有两行,如何利用循环来读取这两行,并打印出来,这个文件有多少行事先是不知道的。
我用for循环时总是按照空格来分隔,我需要的是通过行来分隔,一次打印一行。
发表于 2003-9-28 10:18:27 | 显示全部楼层
cat a|while read line;do echo $line;done
 楼主| 发表于 2003-9-28 10:59:46 | 显示全部楼层
非常感谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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