如何使用bash将两个以上的文件合并成一个具有特定名称的新文件

如何使用bash将两个以上的文件合并成一个具有特定名称的新文件,bash,pattern-matching,match,multiple-columns,cat,Bash,Pattern Matching,Match,Multiple Columns,Cat,我有很多文件 列表文件名: p004c01.txt p004c05.txt p006c01.txt p006c02.txt p007c01.txt p007c03.txt p007c04.txt $cat p004c01.txt #标题 122.5-0.256 547 123.6南325 $cat p004c05.txt #标题 122.1 2.054 247 122.2-1.112 105 $cat p006c01.txt #标题 99-0.200333 121.4-1.206 243

我有很多文件
列表文件名:

  • p004c01.txt
  • p004c05.txt
  • p006c01.txt
  • p006c02.txt
  • p007c01.txt
  • p007c03.txt
  • p007c04.txt
$cat p004c01.txt
#标题
122.5-0.256 547
123.6南325

$cat p004c05.txt
#标题
122.1 2.054 247
122.2-1.112 105

$cat p006c01.txt
#标题
99-0.200333
121.4-1.206 243

$cat p006c02.txt
#标题
122.5 2.200 987
99-1.33556

我希望文件是这样的
文件1

$cat p004.txt
122-0.256 547
122 2.054 247
122-1.112 105

文件2

$cat p006.txt
122.5 2.200 987
121.4-1.206 243
99-1.33556
99-0.200 333

还有另一个文件
中包含相同值(?)的文件

p???cxx.txt

在同一个新文件中
我试过一个接一个这样的文件

cat p004*| sed'/#/d'| sort-k 1n | sed'/NaN/d'| awk'{print substr($1,2,3),$2,$3,$4,$5}>p004.txt

有人能帮我编写所有数据的简单脚本吗?
谢谢:)

也许这对您有用:

for f in {001..999}; do tail -n +2 p"$f"c* > p"$f".txt; done 2>/dev/null

@jared_mamrot
我已经试过了,但它不起作用:(对于{001..999}中的f;do cat<(tail-n+2p“$f”c*)>p“$f”.txt;done-bash:意外标记附近的语法错误
(“`我不知道为什么你也可以将
-q
添加到
tail
命令中,以删除输出中出现的文件名。是的,这对我肯定有效。谢谢@jared_mamrotThankss@guzmonne