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