设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
Linux 综合讨论区 —— LinuxSir.cn
›
shell进阶应用、shell编程
›
如何一行一行读取文件
返回列表
查看:
2365
|
回复:
6
如何一行一行读取文件
[复制链接]
akey307
akey307
当前离线
积分
62
IP卡
狗仔卡
发表于 2008-2-7 16:47:10
|
显示全部楼层
|
阅读模式
请问如何将一个文本文件一行一行的读取, 并将每行的内容打印出来?
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
晨想
晨想
当前离线
积分
9643
IP卡
狗仔卡
发表于 2008-2-7 19:42:05
|
显示全部楼层
while read -r kk; do
echo $kk
done
回复
支持
反对
使用道具
举报
显身卡
akey307
akey307
当前离线
积分
62
IP卡
狗仔卡
楼主
|
发表于 2008-2-7 20:27:43
|
显示全部楼层
过年好,
(1) read -r 中的 -r 是什么意思啊?
(2)
## demo.sh ##
while read -r kk
do
echo $kk
done
那么 ./demo.sh < foo.txt 确实可以, 但如果象下面这样写, 就永远只是输出第一行,
## demo.sh ##
while read -r kk < foo.txt
do
echo $kk
done
请问这两种情况为什么输出不一样。
回复
支持
反对
使用道具
举报
显身卡
晨想
晨想
当前离线
积分
9643
IP卡
狗仔卡
发表于 2008-2-7 20:32:48
|
显示全部楼层
这样
while read -r kk; do
echo $kk
done < foo.txt
至于-r,你自己看 man read 吧。
回复
支持
反对
使用道具
举报
显身卡
gao_linfeng
gao_linfeng
当前离线
积分
1062
IP卡
狗仔卡
发表于 2008-2-9 21:31:33
|
显示全部楼层
想到一个小脚本,不过比较笨重:
#!/bin/bash
aa=$(wc -l $1|awk '{print $1}')
for ((i=1;i<=$aa;i++));do
cat $1|head -n $i|tail -n 1
read
done
把这段存成一个可执行文件如test.比如你想一行行的看file.txt。你就可以./test file.txt
回复
支持
反对
使用道具
举报
显身卡
ErrSta
ErrSta
当前离线
积分
11
IP卡
狗仔卡
发表于 2008-2-17 14:15:03
|
显示全部楼层
Do not treat a backslash character in any special way. Consider each backslash to be part of the input line.
根据我的判断-r是读一行,包括回车符的意思,我还是觉得4楼的方法好些,呵呵
回复
支持
反对
使用道具
举报
显身卡
jiayi198821
jiayi198821
当前离线
积分
113
IP卡
狗仔卡
发表于 2008-2-19 13:56:02
|
显示全部楼层
sed -n "np" filename
n是行号
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
硬件设备 Linux 驱动
Linux 程序设计专题讨论
服务器架设、应用、维护
Mandriva Linux
LFS(LinuxfromScratch)
Redhat/Fedora/CentOS Linux
Gentoo Linux
开源软件专题讨论
Java 程序设计开发讨论
Linux小型、嵌入式系统
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表