免费注册 查看新帖 |

Chinaunix

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

[文本处理] 能否将awk两个文件输入的形式变改成以变量传入? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-12-24 14:26 |只看该作者 |倒序浏览
本帖最后由 mygod100 于 2013-12-24 14:27 编辑


如何标注文本A中第2列数据存在于文本B中的行?http://bbs.chinaunix.net/forum.p ... ;page=1#pid24085748
中:

  1. awk 'NR==FNR{a[$0];next}$2 in a{$1=$1"[*]"}1' B.txt A.txt
复制代码
文本内容都存在A.txt, B.txt中,如果A.txt,B.txt的文件以变量形式存在,怎么实现


VAR_A=`cat A.txt`
VAR_B=`cat B.txt`

如果是单个变量,那么可以用管道符|即
echo $VAR_A | awk ........

现在是两变量,用
echo $VAR_A $VAR_B|awk .....总不行吧?有没有方法可以实现呢?

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
2 [报告]
发表于 2013-12-24 14:38 |只看该作者
  1. [root@everIover ~]# VAR_A=`cat A.txt`
  2. [root@everIover ~]# VAR_B=`cat B.txt`
  3. [root@everIover ~]# echo $VAR_A $VAR_B
  4. line1 123 line2 234 line3 345 line4 456 234 456
复制代码
看看输出的内容 变成什么了,然后再采取措施。
当然你可以这样传参数
  1. [root@everIover ~]# VAR_A=A.txt
  2. [root@everIover ~]# VAR_B=B.txt
  3. [root@everIover ~]# awk 'NR==FNR{a[$0];next}$2 in a{$1=$1"[*]"}1' $VAR_B $VAR_A
  4. line1 123
  5. line2[*] 234
  6. line3 345
  7. line4[*] 456
  8. [root@everIover ~]#
复制代码

论坛徽章:
0
3 [报告]
发表于 2013-12-24 14:56 |只看该作者
本帖最后由 mygod100 于 2013-12-24 14:56 编辑
这个冬天不冷 发表于 2013-12-24 14:38
看看输出的内容 变成什么了,然后再采取措施。
当然你可以这样传参数


这个方法输出比较乱,应该不适合于两个文件输入的形式吧?
[root@everIover ~]# VAR_A=`cat A.txt`
[root@everIover ~]# VAR_B=`cat B.txt`
[root@everIover ~]# echo $VAR_A $VAR_B
line1 123 line2 234 line3 345 line4 456 234 456

因为A.txt B.txt的内容是在变量VAR_A和VAR_B中的,原来那帖为了简单问题把它放到A/B.txt中了,当然现在也可以在脚本中把变量存成文件再用原来那帖方法就可以了。
下面这个方法肯定是可以的,但是要倒来倒去倒成文件,完成后又要清除掉文件,想看看有没有不写成文件的方法

  1. [root@everIover ~]# VAR_A=A.txt
  2. [root@everIover ~]# VAR_B=B.txt
  3. [root@everIover ~]# awk 'NR==FNR{a[$0];next}$2 in a{$1=$1"[*]"}1' $VAR_B $VAR_A
  4. line1 123
  5. line2[*] 234
  6. line3 345
  7. line4[*] 456
  8. [root@everIover ~]#
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP