将awk exec结果重定向到另一个文件夹

莫莉_K

尝试大写与文件名模式“ _base.txt”匹配的文件的内容;然后将结果输出到另一个文件名,该文件名包含原始文件名和最后的“ _cap.txt”。

我计划通过3,000个文件来完成此操作。因此,我目前正在一些文件上对其进行测试。

首先,我能够将内容大写。但是,所有输出结果均未重定向。

BASE="/home/dir/input/"
find "$BASE" -type f -iname "*.txt" -exec awk '{print toupper($0)}' {} + 

然后,我添加了以下内容,这使我可以输出到以“ _cap.txt”结尾的新文件名

BASE="/home/dir/input/"
find "$BASE" -type f -iname "*_pv_bind_basefile.txt" -exec awk '{print toupper($0) >> (FILENAME "_cap.txt")}' {} +  

当我尝试输出到特定文件夹时出现问题

BASE="/home/dir/input/"
OUT_FOLDER="/home/dir/output/"
find "$BASE" -type f -iname "*_pv_bind_basefile.txt" -exec awk '{print toupper($0) >> ($OUT_FOLDER FILENAME "_cap.txt")}' {} +

我收到以下错误消息

awk:非法字段$(),名称为“ OUT_FOLDER”输入记录编号1,文件/home/dir/input/TAB1.a1.001.txt源行编号1

我尝试了几次迭代来输出文件,但几个小时后却惨遭失败...这一定是我忽略或不知道如何做的一些简单的事情。任何建议将不胜感激。谢谢你。

钢铁司机

Shell变量和Awk变量是不同的东西。

如果将变量导出到环境,则可以通过awk的ENVIRON数组访问它-可以这样做(注意:我省略了find,因为它不是问题的中心)

export OUT_FOLDER="/home/dir/output/"
awk '{print toupper($0) >> ENVIRON["OUT_FOLDER"] FILENAME "_cap.txt"}'

另外,您可以使用-v选项传递变量

OUT_FOLDER="/home/dir/output/"
awk -v out_folder="$OUT_FOLDER" '{print toupper($0) >> out_folder FILENAME "_cap.txt"}'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用htaccess将文件夹重定向到另一个

将Web文件夹目录重定向到另一个htaccess

Htaccess将文件夹中的图像重定向到另一个URL

通过htaccess将文件夹重定向到另一个域

htaccess:将子文件夹重定向到另一个子文件夹

将桌面文件夹重定向到Windows中的另一个文件夹

如何将一个文件夹中的文件子集重定向到另一个文件夹?

htaccess将文件请求从特定文件夹重定向到另一个主机名

htacces,将一些子文件夹重定向到另一个

Apache Tomcat-将请求从一个文件夹重定向到另一个文件夹?

将请求从一个文件夹重定向到htaccess中的另一个文件夹

将一个硬盘上的文件夹重定向到另一个硬盘上的文件夹

将documentroot重定向到conf apache或.htccess中的另一个文件夹

将域URL重定向到PHP中另一个域的子文件夹

htaccess将子域重定向到另一个域的子文件夹

将目录的内容重定向到父文件夹中的另一个目录

使用htaccess将子文件夹调用重定向到另一个URL

htaccess将所有内容从域/文件夹重定向到另一个域

htaccess:如何将子文件夹路径重定向到另一个

将任何名称的网页重定向到另一个文件夹中具有相同名称的另一个网页

.htaccess仅将子文件夹的根目录重定向到另一个子文件夹?

将文件夹重定向到另一个文件夹,以避免其他.htaccess规则

如何将文件夹下的请求重定向到另一个?

将表单结果从php文件重定向到另一个

bash:如何将结果重定向到另一个文件

如何仅将域重定向到另一个域而不是 nginx 中的子域和文件夹

将文件夹列表复制到另一个文件夹?

如何使用带有-exec操作或xargs的find命令将文件从文件夹复制到另一个文件夹

将文件从一个文件夹复制到另一个文件夹