【发布时间】:2014-07-11 21:17:21
【问题描述】:
我的文件夹中有几个 txt 文件,其中包含大量数据。现在我必须通过一次从每个文件中读取一行来创建一个文件。新文件应如下所示:
foldername-file1.line1
foldername-file2.line1
fodlername-file3.line1
...then repeat the cycle
fodlername-file1.line2
fodlername-file2.lin2
fodlernam-file3.line2
fodlername-file1.line3
fodlername-file2.line3
fodlername-file3.line3
直到文件结束我必须连接文件。
我尝试使用 sed,但由于我有很多数据,它的性能很差。
counter=0
line=$(awk 'NR==n' n=$counter $filename)
echo $line >> $2
我正在循环递增计数器。我不知道如何检查文件的结尾。
使用粘贴命令,我无法在每个字符串中附加文件夹名称,并且当文件具有不同的输入行数时会附加额外的行
我自己解决了这个问题,只是想分享解决方案。 我使用了一个脚本,其中首先将所需的字符串附加到所有行,然后在命令下方运行以读取所有字符串 粘贴 -d '\n' 个文件* |awk '{if(length($0)>0) {print $0}}'
【问题讨论】:
-
@TomFenech 我刚刚对建议的编辑进行了小幅更正,我认为 OP 问题不适合这类 cmets,这就是 MSE 的用途。另外,在我看来,您的编辑实际上变化太大。 OP 指的是您现在已删除的 sed。
标签: awk