Chinaunix

标题: 求助:取文件行的问题 [打印本页]

作者: mmh    时间: 2008-08-07 09:52
标题: 求助:取文件行的问题
一个文件file.txt 它的格式是:
aaaaa bbbbb@123.com cccccccccccc
ddddd eeeee@123.com ffffffffffffffffff
这样的文件怎样先取出aaaaa bbbbb@123.com 后在从文件里取出ccccccccc
这样一行一行的循环读取.
作者: 爱知    时间: 2008-08-07 09:54
read first second third
作者: mmh    时间: 2008-08-07 10:06
先谢谢楼上的大大.不过我不是很明白.
是用while read 么?
作者: mmh    时间: 2008-08-07 10:41
比如这样
mail -s aaaaa bbbbb@123.com  < `awk '{ print $3 }' test.sh`
我想先把每行的头两个域取出来然后在从文件中取每行中的第三个域.
这样循环的一个一个发送邮件
作者: ly5066113    时间: 2008-08-07 10:58
awk '{print "mail -s "$1" "$2" < "$3}' file.txt | sh
作者: mmh    时间: 2008-08-07 11:19
后面 | sh 是什么意思?
作者: blackold    时间: 2008-08-07 11:22
标题: 回复 #6 mmh 的帖子
man urshell
作者: walkerxk    时间: 2008-08-07 12:01
原帖由 mmh 于 2008-8-7 11:19 发表
后面 | sh 是什么意思?

用sh执行前面的语句。
作者: mmh    时间: 2008-08-07 12:25
标题: 回复 #7 blackold 的帖子
No manual entry for shell
作者: ly5066113    时间: 2008-08-07 12:27
原帖由 mmh 于 2008-8-7 12:25 发表
No manual entry for shell



黑哥该郁闷了。
作者: 爱知    时间: 2008-08-07 12:29
原帖由 ly5066113 于 2008-8-7 12:27 发表



黑哥该郁闷了。

^_^   ^_^   ^_^
作者: walkerxk    时间: 2008-08-07 12:29
原帖由 mmh 于 2008-8-7 12:25 发表
No manual entry for shell

man sh
你没看懂他的意思。shell不是一个程序,只是各种shell的一个总称。
作者: leetaedong    时间: 2008-08-07 13:33
ly 是问题杀手啊.
作者: mmh    时间: 2008-08-08 10:15
网络出错

[ 本帖最后由 mmh 于 2008-8-8 10:28 编辑 ]
作者: mmh    时间: 2008-08-08 10:19
原帖由 ly5066113 于 2008-8-7 10:58 发表
awk '{print "mail -s "$1" "$2" < "$3}' file.txt | sh

执行后变成 mail -s test 123@163.com < aaaaaaa 了
mail -s 要求< 后面跟的是文件.
怎么确保$3同$2 与 $1 是同一行的前提下输出$3到一个文件然后在mail -s $1 $2 < $3  ??????

刚学shell,不懂之处请大家见谅!

[ 本帖最后由 mmh 于 2008-8-8 10:24 编辑 ]
作者: leetaedong    时间: 2008-08-08 11:25
原帖由 mmh 于 2008-8-8 10:19 发表

执行后变成 mail -s test 123@163.com < aaaaaaa 了
mail -s 要求< 后面跟的是文件.
怎么确保$3同$2 与 $1 是同一行的前提下输出$3到一个文件然后在mail -s $1 $2 < $3  ??????

刚学shell,不懂之处请大 ...


awk '{print $3 > $3 }'
作者: mmh    时间: 2008-08-08 12:23
awk '{print "mail -s "$1" "$2" < "$3}'
awk '{print $3 > $3 }'

这两句连起来呢?
作者: welcome008    时间: 2008-08-08 12:36
aaaaa bbbbb@123.com cccccccccccc

试试:

awk '{print "echo "$3"| mail -s "$1" "$2}' filename | sh
作者: mo_yuan_ming    时间: 2008-08-08 12:47
原帖由 leetaedong 于 2008-8-7 13:33 发表
ly 是问题杀手啊.


同意
并且 快 准 很  




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2