如何使用更多文件作为输入?

时间:2019-09-11 05:19:34

标签: awk

此文件有什么问题?我想将最少70个文件打印到最小文件中。谢谢

awk 'BEGIN{a=100000}{if ($1<0+a) a=$1} END{print a}' file[01-70].asc > min

3 个答案:

答案 0 :(得分:2)

从01到70列出文件的方法有很多,但是val unionbroadcastdf = channel_view_by_time.alias("t1") .join(broadcast(channel_view_by_time.alias("t2")), $"t1.channel_id" === $"t2.channel_id" and $"t1.dow" === $"t2.dow" ).select($"t1.user_id", $"t1.channel_id", $"t1.dow", $"t1.tod".alias("tod1"), $"t2.tod".alias("tod2")).distinct() 不是其中一种。考虑:

[01-70]

简而言之,您可能只想使用$ echo file{01..10}.asc file1.asc file2.asc file3.asc file4.asc file5.asc file6.asc file7.asc file8.asc file9.asc file10.asc $ for i in $(seq -w 10); do touch file$i.asc; done $ ls file01.asc file02.asc file03.asc file04.asc file05.asc file06.asc file07.asc file08.asc file09.asc file10.asc $ ls file*.asc file01.asc file02.asc file03.asc file04.asc file05.asc file06.asc file07.asc file08.asc file09.asc file10.asc $ ls file{10,0{1..9}}.asc file01.asc file02.asc file03.asc file04.asc file05.asc file06.asc file07.asc file08.asc file09.asc file10.asc $ ls file[01-10].asc ls: file[01-10].asc: No such file or directory $ echo file[01-10].asc file[01-10].asc awk ... file0{1..9}.asc file{10..70}.ascfile[01234567][0123456789].asc,但是您也许可以简单地使用file[01234567][[:digit:]].asc

答案 1 :(得分:2)

正确的是使用END而不是我写的ENDFILE,因此OP解决方案应该可以工作。

cat f1
10
1

cat f2
20
2

cat f3
30
3


awk '{f+=$1} ENDFILE {print FILENAME,"ENDFILE="f} END {print "All file END="f}' f[1-3]
f1 ENDFILE=11
f2 ENDFILE=33
f3 ENDFILE=66
All file END=66

ENDFILE在每个文件的末尾运行
读取所有文件后,将运行END

答案 2 :(得分:1)

请您尝试以下。

awk '{min=min<=$1?(min!=""?min:$1):$1} END{print min}' file{01..70}.asc

如果对结果满意,则也按照您显示的代码将其输出重定向到> min。公平的警告,由于您的帖子中未提供任何示例,因此该代码未经测试。

说明: 在上述代码中添加说明。

awk '                            ##Starting awk program from here.
{                                ##Starting main BLOCK from here.
 min=min<=$1?(min!=""?min:$1):$1 ##Creating a variable min where checking if min value is NULL then assign it to $1 OR min is greater than $1 then assign it as $1 or keep it as it is.
}                                ##Closing main block here.
END{                             ##Starting END section of this program here.
  print min                      ##Printing min variable value here.
}
' file{01..70}.asc               ##Mentioning Input_file(s) names by file01 to file70.asc