小编nan*_*ana的帖子

使用 awk 过滤字符串中的列,并通过 xargs 进行管道传输

我有一些文件:

file1.csv
file2.csv
file3.csv
Run Code Online (Sandbox Code Playgroud)

给定的脚本处理它们,并记录到此文件:

my.log
Run Code Online (Sandbox Code Playgroud)

采用这种格式:( filename col2 col3):

file1.csv 1 a
file2.csv 1 a
file3.csv 1 a
file2.csv 2 b
file1.csv 2 b
file3.csv 2 b
file1.csv 3 c
file2.csv 3 c
file3.csv 3 c
file2.csv 4 d
file3.csv 4 d
Run Code Online (Sandbox Code Playgroud)

我想从每个文件的文件中获取一个col3值(仅最后一个)。my.log*.csv

我运行这个命令:

ls *.csv | xargs -I@ bash -c "cat my.log | grep @ | tail -n 1 | awk '{ print $3 }'"
Run Code Online (Sandbox Code Playgroud)

它工作得很好,除了 awk 给了我所有的列。

file1.csv 3 c
file2.csv 4 …
Run Code Online (Sandbox Code Playgroud)

xargs awk

6
推荐指数
1
解决办法
5230
查看次数

标签 统计

awk ×1

xargs ×1