免费注册 查看新帖 |

Chinaunix

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

awk读取文件问题,紧急求助 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-05 13:09 |只看该作者 |倒序浏览
各位大虾,从一个文件中顺序读取数据,文件数据内容如下:
AAAAA     BBBBB     CCCCC
DDDDD    EEEEE     FFFFF
……
每行数据中都有多个空格,读取代码如下:
set l = `awk 'END{PRINT NR}' ${MIDDIR}/{FILENAME}`
set linenum = 1
while($linenum <=$l)
    set line = `awk "{if(NR=$linenum) print}"  ${MIDDIR}/{FILENAME}`
    echo "$line"
    @linenum ++
end

shell运行,显示如下
AAAAA BBBBB CCCCC
DDDDD EEEEE FFFFF
……

我期望得到的结果是读入的文件内容是什么样就显示什么内容

AAAAA     BBBBB     CCCCC
DDDDD    EEEEE     FFFFF
……
怎么实现?请各位大虾帮忙

论坛徽章:
0
2 [报告]
发表于 2007-06-05 13:39 |只看该作者
print $0

论坛徽章:
0
3 [报告]
发表于 2007-06-05 13:45 |只看该作者
print $0不好用
在命令行下执行
awk "{if(NR=$linenum) print}"  ${MIDDIR}/{FILENAME}
正常显示

但是在csh中执行
set line = `awk "{if(NR=$linenum) print}"  ${MIDDIR}/{FILENAME}`
感觉是在set赋值时发生了变化

大虾们如果有时间最好能在环境上测试以下,提供个实例代码。
我不知道我这种思路是否正确
大家多提供一些思路。

论坛徽章:
0
4 [报告]
发表于 2007-06-05 14:49 |只看该作者
高手快出现呀
这个问题困扰我一天了

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
5 [报告]
发表于 2007-06-05 15:08 |只看该作者
直接 cat ${MIDDIR}/{FILENAME}就可以实现你的功能了

如果你想在set 时保留``中得到的空格,试试 set var="`cmd`"

论坛徽章:
0
6 [报告]
发表于 2007-06-05 15:19 |只看该作者
谢谢waker
我不能使用cat命令
我的这个需求是去逐行读取一个文件的数据,然后由另一个文件指定这个有哪些列需要被屏蔽掉(用空格代替),现在出现的情况时我使用awk命令从文件中读取一行数据时,如果该行数据含有空格,就发生了空格丢失。还有更好的思路吗?

论坛徽章:
0
7 [报告]
发表于 2007-06-05 15:26 |只看该作者
另:set var="`cmd`"
在csh中报语法错误

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
8 [报告]
发表于 2007-06-05 15:33 |只看该作者
换GreatBASH ^_^

论坛徽章:
0
9 [报告]
发表于 2007-06-05 15:40 |只看该作者
不行呀,烈火
鬼子就是用得csh
我不能换的
烈火也想想办法呀

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
10 [报告]
发表于 2007-06-05 15:45 |只看该作者
原帖由 songlc 于 2007-6-5 15:26 发表
另:set var="`cmd`"
在csh中报语法错误

双引号、单引号、反引号搭配使用或许可解决,俺一向是很葱白csh用户的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP