+ -
当前位置:首页 → 问答吧 → 出个UNIX基础题,让大家练练手

出个UNIX基础题,让大家练练手

时间:2003-11-29

来源:互联网

现在有如下两个文件:
file 1: users
jdoe............John Doe.........4/15/96
lsmith..........Laura Smith.....3/12/96
pchen..........Paul Chen.......1/5/96
jhsu.............Jake Hsu..........4/17/96
sphilip.........Sue Phillip.........4/2/96

file2: phone
John Doe.........555-6634
Laura Smith.....555-3382
Paul Chen.......555-0987
Jake Hsu.........555-1235
Sue Phillip.......555-7623

要求:在控制台下通过命令行方式,对上面两个文件进行合并,形成如下文件:
fiel 3: listing
jdoe............John Doe.........4/15/96.........237-6634
lsmith..........Laura Smith.....3/12/96.........878-3382
pchen..........Paul Chen.......1/5/96......... ..888-0987
jhsu............Jake Hsu..........4/17/96.........545-1235
sphilip.........Sue Phillip.......4/2/96............656-7623

请写出具体步骤,不能用mouse哦。在操作过程中也不能进行删除。

作者: upon   发布时间: 2003-11-29

你的问题提的不清楚:到底要干什么?要写script 嘛?如果是,用什么语言?另外好像还有错误:
listing:
jdoe............John Doe........4/15/96.........237-6634

你的237从那里来的?

作者: werix   发布时间: 2003-11-29

试试看~~
代码:
1,
tr -d [[:alpha:]] <phone >list
2,
paste users list|tr -d "\t">listing
3,
cat listing
jdoe............John Doe.........4/15/96 .........555-6634
lsmith..........Laura Smith.....3/12/96 .....555-3382
pchen..........Paul Chen.......1/5/96 .......555-0987
jhsu.............Jake Hsu..........4/17/96 .........555-1235
sphilip.........Sue Phillip.........4/2/96 .......555-7623

作者: KornLee   发布时间: 2003-11-29

javalee 不愧是SHELL老大!!
想不出更好的办法了

1. awk '{print $3}' phone > list
or
cut -f 2 phone > list

2. idem ...

作者: werix   发布时间: 2003-11-29

惭愧~~,如果楼主的phone文件的顺序有变的话,就不那么容易喽~~

作者: KornLee   发布时间: 2003-11-29

we can sort ?

作者: werix   发布时间: 2003-11-29

sort! ya,good!

作者: bouzouki   发布时间: 2003-11-29

各位,不好意思,我的输入有错误。file3里面最后一列是电话号码,开头的都是555。(这里写贴子的文本框不支持TAB键,所以我只好用点(.)来代替空格了。谁有更好的办法?)
该题可以用管道或重定向解决。
% cut -f2 phone > temp.file
% paste users temp.file > listing

or

% cut -f2 phone | paste users - > listing

作者: upon   发布时间: 2003-11-30