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

how to combine more than two file into one new file with specific name using bash

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

$cat p004c01.txt
#header
122.5 -0.256 547
123.6 NaN 325

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

$cat p006c01.txt
#header
99 -0.200 333
121.4 -1.206 243

$cat p006c02.txt
#header
122.5 2.200 987
99 -1.335 556

我想要这样的文件
文件 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.335 556
99 -0.200 333

还有另一个文件

中包含相同值 (?) 的文件

p????cxx.txt

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

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

任何人都可以帮助我编写所有数据的简单脚本吗? 谢谢:)

也许这对你有用:

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