如何在多个文件上运行awk脚本

时间:2015-12-22 23:30:58

标签: awk

我需要在数百个文件上运行命令,我需要帮助才能获得循环来执行此操作:

  1. 有一个输入文件列表/path/dir/file1.csv,file2.csv,...,fileN.csv
  2. 需要在所有这些输入文件上运行脚本
  3. 脚本类似于:command input = / path / dir / file1.csv output = output1
  4. 我尝试过这样的事情: for f in /path/dir/file*.csv; do command,但每次如何读取和写入新文件? 谢谢....

2 个答案:

答案 0 :(得分:0)

尝试此操作,(将/path/to/data更改为正确的路径后。与/path/to/awkscript和其他位置相同,指向您的测试数据。)

#!/bin/bash
cd /path/to/data
for f in *.csv ; do
    echo "awk -f /path/to/awkscript \"$f\" > ${f%.csv}.rpt"
    #remove_me awk -f /path/to/awkscript "$f" > ${f%.csv}.rpt
 done

制作脚本"可执行文件"与

 chmod 755 myScript.sh

echo版本将帮助您确保脚本按预期工作。您仍然需要仔细检查输出或处理数据副本,这样您就不会破坏基线数据。

您可以获取最后一次迭代的输出

awk -f /path/to/awkscript myFileLast.csv > myFileLast.rpt

复制/粘贴到cmd-line以确认它可以正常工作。

如果您觉得awk脚本可以正常工作,那么请注释掉echo awk ..行,并取消注释#remove_me一词(并保存您的bash脚本)。

答案 1 :(得分:0)

public abstract class DataSource<T> : IDataSource<T> where T : IData

希望这有帮助,我在我的黑莓上,所以可能存在拼写错误