【求助】linux shell下文件关联的取词替换
这段时间小弟在学一些Linux下的shell编程,发现这东西时而简单时而又想不到正确的方法。
这里我想问下,利用shell脚本能否批处理完成以下操作:
有两个文件file1,file2.
file1中文本类似于:
balabala"本地视频"balabala
balabala"本地音频"balabala
balabala"图片浏览"balabala
......
file2中文本类似于:
本地视频 Video
本地音频 Audio
图片浏览 Picture
......
这时我能否实现对file1中每行的特定词进行特定的替换?比如搜索到file1中的"本地视频"与file2中第一行$1匹配,那就用file2中匹配行的$2(Video)替换file1中的"本地视频",然后依次往下搜索匹配、替换。。。能否用awk实现?
这里我想问下,利用shell脚本能否批处理完成以下操作:
有两个文件file1,file2.
file1中文本类似于:
balabala"本地视频"balabala
balabala"本地音频"balabala
balabala"图片浏览"balabala
......
file2中文本类似于:
本地视频 Video
本地音频 Audio
图片浏览 Picture
......
这时我能否实现对file1中每行的特定词进行特定的替换?比如搜索到file1中的"本地视频"与file2中第一行$1匹配,那就用file2中匹配行的$2(Video)替换file1中的"本地视频",然后依次往下搜索匹配、替换。。。能否用awk实现?
作者: louis_ly 发布时间: 2011-05-30
保证file2中$1的唯一性
复制代码
- awk 'NR==FNR{a[$1]=$2}NR>FNR{for (i in a) gsub(i,a[i]);print}' file2 file1
作者: ywlscpl 发布时间: 2011-05-30
回复 ywlscpl
$1唯一的话,确实能够实现,多谢!请教大牛,能推荐一些好的相关学习资料不?
$1唯一的话,确实能够实现,多谢!请教大牛,能推荐一些好的相关学习资料不?
作者: louis_ly 发布时间: 2011-05-30
回复 ywlscpl
请问能请教下NR==FNR是什么情况吗,还有这个awk是怎样处理的,是先读取file2文件再读取file1文件?多文件处理方面不太懂 谢谢
请问能请教下NR==FNR是什么情况吗,还有这个awk是怎样处理的,是先读取file2文件再读取file1文件?多文件处理方面不太懂 谢谢
作者: yue_5516 发布时间: 2011-05-30
回复 yue_5516
这个时候你见什么都问,其实对你自身学习帮助不大,静下心看awk手册,本版置顶有下载,看完了基础再说。
这个时候你见什么都问,其实对你自身学习帮助不大,静下心看awk手册,本版置顶有下载,看完了基础再说。
作者: zooyo 发布时间: 2011-05-30
回复 louis_ly
作者: ywlscpl 发布时间: 2011-05-30
回复 zooyo
恩,多谢指教!
恩,多谢指教!
作者: louis_ly 发布时间: 2011-05-30