【发布时间】:2020-08-27 21:59:30
【问题描述】:
我的要求是根据第一个字段拆分文件。 我的文件看起来像这样:
aaa|12345
bbb|45679
aaa|334564
ccc|qewqw
现在我的 awk 命令可以正常工作,并根据第一个字段值拆分文件。
awk -F\| '{f=($1); print $2 > f}' /myfile
结果:文件名 aaa 包含以下行:
12345
334564
现在,我想让它输入驱动,即从一个脚本中,我将值aaa 输入到这个 awk 命令,它将与$1 匹配,并像上面一样创建文件。我尝试使用 awk -v 将值作为输入,但它没有按照我想要的方式工作。
任何帮助将不胜感激。
提前致谢。
【问题讨论】:
-
这能满足您的需求吗?:stackoverflow.com/questions/19075671/…
-
“不工作”是什么意思?你能显示代码和错误信息吗?
-
我尝试了这些选项,但问题是它没有正确匹配。我的意思是如果我传递一个值'v',整个文件内容将保存在我不想要的值'v'下。 @詹姆斯布朗
-
如果您没有显示代码,则无法告诉您您做错了什么。
-
这是我尝试做的:awk -v "var=$input_value" -F\| '{f=($var);打印 $2 > f}' /myfile 。但是在这里我不确定如何将 $1 值与 var 进行比较,结果整个文件内容都移到了 var 中。