如何使用 bash 将两个以上的文件合并为一个具有特定名称的新文件
how to combine more than two file into one new file with specific name using bash
我有很多文件
列表文件名:
- p004c01.txt
- p004c05.txt
- p006c01.txt
- p006c02.txt
- p007c01.txt
- p007c03.txt
- p007c04.txt
...
$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
我有很多文件
列表文件名:
- p004c01.txt
- p004c05.txt
- p006c01.txt
- p006c02.txt
- p007c01.txt
- p007c03.txt
- p007c04.txt
...
$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