Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 使用10000个输入文件的AWK:添加列并合并到一个没有冗余头的文件中_Linux_Unix_Awk_Sed_Terminal - Fatal编程技术网

Linux 使用10000个输入文件的AWK:添加列并合并到一个没有冗余头的文件中

Linux 使用10000个输入文件的AWK:添加列并合并到一个没有冗余头的文件中,linux,unix,awk,sed,terminal,Linux,Unix,Awk,Sed,Terminal,我有大约一周的AWK经验,所以请容忍我 使用Mac上的终端,我试图整合分散在大约10000个文件中的数据集。每个文件有0到几千行 每个文件都包含不同的列,这些列并不总是相同的,也不总是按相同的顺序排列。但所有文件似乎都有: Timestamp,UserId 2016-01-08 15:57:49,<alphanumeric string> …将从源到目标打印数据(不包括标题) 而且,我发现 awk '{if(NR!=1){print}}' source.csv >> d

我有大约一周的AWK经验,所以请容忍我

使用Mac上的终端,我试图整合分散在大约10000个文件中的数据集。每个文件有0到几千行

每个文件都包含不同的列,这些列并不总是相同的,也不总是按相同的顺序排列。但所有文件似乎都有:

Timestamp,UserId
2016-01-08 15:57:49,<alphanumeric string>
…将从源到目标打印数据(不包括标题)

而且,我发现

awk '{if(NR!=1){print}}' source.csv >> destination.csv
awk '{print FILENAME ",", $0}' source.csv >destination.csv
…将文件名添加到所有行的开头,并打印到目标文件

(尽管它添加了一个空白,我不希望这样,因为数据是用逗号分隔的,并且将文件扩展名添加到记录中)

同样地

'{print $NF}'
可用于打印文件夹名称

问题: 如何将上述AWK命令修改为

  • 考虑匹配/不匹配列,根据需要将值从源复制到目标或将值设置为null
  • 遍历文件夹并对文件夹中的所有文件执行这些操作,最好不要:
    • 添加空格
    • 不从文件名添加文件扩展名
谢谢


…希望这不是(太)不清楚。

太广泛,没有一小部分样本数据,包括您打算处理的所有案例,以及应跳过的案例的样本数据,以及应通过而不进行处理的案例。请花一些时间在上阅读
awk
教程,然后发布一个更为集中的新Q。对于10000多个文件,您很可能需要使用
xargs
parallel
,但要让代码正常工作,StackOverflow就是帮助人们修复编程代码。我们需要看一些代码,以便提供帮助,否则您的Q与StackOverflow无关。在这里发布更多Qs之前,请阅读、、和。祝你好运。@Sheller:谢谢你的快速回复。如果我理解正确,一个解决方案是1)编写foo.awk来解决一个文件的问题2)编写一个bash脚本,其中a)
xargs
用于存储带有路径的所有文件名,b)foo.awk用于
xargs
中的所有文件。如果是这样的话,它确实有助于确定总体方向,因为我试图用一个foo.awk做所有的事情。这差不多是对的。
xargs
的典型用法是
find/root/path/to_files_of u interest-name'*.txt | xargs foo.awk
这里有许多
[bash]xargs
问题。我包含的
xarg
示例假定文件名中没有空格。否则需要额外的语法。祝你好运
'{print $NF}'