如何使用ls和xargs对连续文件进行操作?

时间:2017-10-17 00:03:15

标签: shell unix ls netcdf xargs

我有一个文件夹,其中包含:

ls *101* | grep -v "discard"

给了我这个:

test101v1.nc
test101v2.nc
test101v3.nc

现在,我需要连接这些文件,通常我可以使用它来完成:

ncrcat test101v1.nc test101v2.nc test101v3.nc out.nc

如何在shell脚本中使用xargs执行此操作?

我可以使用for循环,但我想知道它是否可以以更智能的方式完成?

2 个答案:

答案 0 :(得分:1)

为什么要使用xargs?

有什么问题
[[color(0)]]

答案 1 :(得分:0)

尝试ls *101* | grep "discard" | xargs ncrcat -o out.nc

之类的内容

或者您可以使用命令find:

find . -type f \( -name "*101" ! -name "*discard*" \) | xargs ncrcat -o out.nc

另一种使用数组的方法:ncrcat $(ls *101* | grep "discard") -o out.nc