免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2289 | 回复: 9
打印 上一主题 下一主题

[文本处理] shell 用 while read do done 的时候 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-08-21 17:50 |只看该作者 |倒序浏览
“$LINE”
的空格会没有
不知道为什么
有没有什么直接读取文件的方法
不会去掉空格什么的????

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
2 [报告]
发表于 2014-08-21 17:52 |只看该作者
举个例子看看,怎么个空格会没了???

论坛徽章:
0
3 [报告]
发表于 2014-08-21 17:53 |只看该作者
本帖最后由 Piaomiao139 于 2014-08-21 17:53 编辑

用 sed -ne 2,2p test.txt
这样就不会去掉前面的空格但是我想while循环啊。。。
有没有什么while 或者是for循环的方法不会去掉前面空格的?

论坛徽章:
9
寅虎
日期:2013-12-02 12:49:22巨蟹座
日期:2014-07-18 18:13:34卯兔
日期:2014-07-25 14:43:08子鼠
日期:2014-07-26 10:10:51酉鸡
日期:2014-07-31 15:09:562015亚冠之本尤德科
日期:2015-05-19 09:27:382015亚冠之卡尔希纳萨夫
日期:2015-06-20 10:30:212015亚冠之阿尔纳斯尔
日期:2015-07-01 20:46:062015亚冠之城南
日期:2015-07-15 21:12:00
4 [报告]
发表于 2014-08-21 17:54 |只看该作者
给$line加双引号

论坛徽章:
0
5 [报告]
发表于 2014-08-21 17:55 |只看该作者
回复 2# 关阴月飞


while read LINE
do
echo "$LINE"
done < test.txt
直接就变成
if a=b then
a=n
else
a=c
vi test.txt
"test.txt" [Incomplete last line] 5 lines, 39 characters
if a=b then
    a=n
else
    a=c
end if
~
这个输出直接就变了

论坛徽章:
0
6 [报告]
发表于 2014-08-21 17:56 |只看该作者
回复 4# lifayi2008


    加了的

论坛徽章:
0
7 [报告]
发表于 2014-08-21 17:58 |只看该作者
难道是环境的问题???
不会把。
我记得昨天还是前天写的东西都可以。。。。

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
8 [报告]
发表于 2014-08-21 18:00 |只看该作者
回复 3# Piaomiao139


whlie IFS='\n' read LINE
do
    echo "$LINE"
done < file

论坛徽章:
0
9 [报告]
发表于 2014-08-21 18:01 |只看该作者
这个问题实际上是可以在 while的时候使用
    get_line=`sed -ne $linenumber,${linenumber}p $filename`
给一个linenumber 来获取的
但是为什么会少掉空格呢?

论坛徽章:
0
10 [报告]
发表于 2014-08-21 18:22 |只看该作者
回复 8# 关阴月飞


    才想起  前几天看过。。。。
谢谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP