LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2333|回复: 13

如何将文本文件的每行做为字符串送入一个变量?

[复制链接]
发表于 2003-1-30 12:49:54 | 显示全部楼层 |阅读模式
如何将文本文件的每行做为字符串送入一个变量?
发表于 2003-1-30 13:00:47 | 显示全部楼层
在shell中,sed和awk都是读入一行,处理一行,如果要按行处理文本文件,可以用这两个工具。
你这样做的目的是什么,能否说来听听?
 楼主| 发表于 2003-1-30 13:12:05 | 显示全部楼层
sed 我只会用搜索和替换。看来要好好去学Regular expression。
我想自己做个SuSE的精简包,要修改一些安装程序要用到的文本文件,如果手工的话,要很长时间,所以就想用shell来做。
发表于 2003-1-30 15:21:08 | 显示全部楼层
能否说具体一点。
 楼主| 发表于 2003-1-30 17:10:56 | 显示全部楼层
就是对一行文本送入一个字符串变量,然后下一行再做同样动作,应该是个循坏。目标为了把想要下载的软件放在一个文本中,然后从另一个文本中找本上面这些软件包REQUIRE的其它包,然后生成一个下载列表,让FTP程序安刻列表自动去下载。
发表于 2003-1-30 18:57:37 | 显示全部楼层
如果把一行文本送入一个字符串变量,可以采用直接赋值的方式。如:
AA= "This is a example"
如果要把xxxx.txt文件不同的行赋值给同一个变量,可以用awk:
cat xxxx.txt | awk '{ AA = $0 }'
然后在awk内部加上对AA变量进行处理的函数。
我对于awk也不是很熟悉,不知道对你是否有所帮助。
发表于 2003-1-31 01:20:53 | 显示全部楼层
这样呢
假定你的文本为text
while (true)
read a b c
done < text

这样可以一次读取text里一行
发表于 2003-1-31 08:09:10 | 显示全部楼层
最初由 scopio 发布
这样呢
假定你的文本为text
while (true)
read a b c
done < text

这样可以一次读取text里一行

可是这样有三个变量,而kkyour 的意思是一行一个变量。
 楼主| 发表于 2003-1-31 12:04:19 | 显示全部楼层
3KS,我试试
发表于 2003-1-31 12:19:11 | 显示全部楼层
$fp=file("test.txt");
$Var_first=$fp[0];
$Var_second=$fp[1];
...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表