使用长参数运行linux命令时出现文件名过长错误

使用长参数运行linux命令时出现文件名过长错误,linux,paste,cut,Linux,Paste,Cut,我正在尝试使用以下linux命令从100个文件中剪切一列并粘贴它们: paste <(cut -f 5 file_1.tsv) <(cut -f 5 file_2.tsv) <(cut -f 5 file_3.tsv) ... <(cut -f 5 file_100.tsv) > combined.tsv 有什么建议可以解决这个问题吗?您可能会收到这条消息,因为命令行大小有限。我建议你试着做一个循环。下面是一个你可以做的例子——小心,因为顺序可能不是你想要的: #

我正在尝试使用以下linux命令从100个文件中
剪切
一列并
粘贴
它们:

paste <(cut -f 5 file_1.tsv) <(cut -f 5 file_2.tsv) <(cut -f 5 file_3.tsv) ... <(cut -f 5 file_100.tsv) > combined.tsv

有什么建议可以解决这个问题吗?

您可能会收到这条消息,因为命令行大小有限。我建议你试着做一个循环。下面是一个你可以做的例子——小心,因为顺序可能不是你想要的:

#!/bin/bash
echo "" >  combined.tsv

#build your file list
find . -name "file*tsv" |sort -k1 > list_files.lst

#the process the list
while read x ; do
  x=`basename ${x}`
  paste <(cat combined.tsv) <(cut -f 5 ${x} ) > combined${x}.tsv
  mv combined${x}.tsv combined.tsv
done< list_files.lst

#you do not need it anymore
rm list_files.lst
)

#!/bin/bash
echo "" >  combined.tsv

#build your file list
find . -name "file*tsv" |sort -k1 > list_files.lst

#the process the list
while read x ; do
  x=`basename ${x}`
  paste <(cat combined.tsv) <(cut -f 5 ${x} ) > combined${x}.tsv
  mv combined${x}.tsv combined.tsv
done< list_files.lst

#you do not need it anymore
rm list_files.lst
./myscript.sh