여러 디렉터리("amazon", "niger", ...), 그 안에 여러 하위 디렉터리("gfdl", "hadgem", ...), 그 안에 여러 하위 디렉터리("rcp8p5", "rcp4p5", . ..). 마지막 하위 디렉터리에는 항상 동일한 프레임을 가진 수천 개의 테이블이 포함된 두 개의 폴더("History", "Projection")가 있습니다. 따라서 마지막 두 폴더에 있는 테이블을 연결하려고 합니다. 하위 디렉터리) 그래서 테이블이 조인될 때마다 하나가 아닌 하나의 헤더만 있는 하나의 큰 테이블만 있게 됩니다.
현재 다음 루프 구조를 사용하고 있습니다.
#!/bin/bash
# usage:cat_dat dirname
data_dir=/scratch/01/stevens/climate_scenario/river
for river in tagus
do
for gcm in gfdl-esm2m hadgem2-es
do
for scenario in rcp8p5 rcp4p5 rcp6p0 rcp2p6
do
find "${data_dir}/${river}/${gcm}/${scenario}" name \*.dat -exec cat {} + >> "${data_dir}/${river}/${gcm}/${scenario}.dat"
done
done
done
하지만 제목은 지울 수가 없어요! 어떤 도움이라도 대단히 감사하겠습니다! 감사해요!
답변1
당신은 가깝습니다. 대신 첫 줄 건너뛰기를 cat
사용 awk
하고 나머지 줄을 인쇄할 수 있습니다.
find "${data_dir}/${river}/${gcm}/${scenario}" name \*.dat -exec awk 'NR > 1' {} + >> "${data_dir}/${river}/${gcm}/${scenario}.dat"
awk
이는 기본 동작에 의존하므로 매우 빈 스크립트입니다 . BEGIN이나 END가 없으며 기본 작업을 사용하여 인쇄합니다.
저는 이 도구를 awk
더 자주 사용하기 때문에 추천하지만, 다른 도구를 사용해도 동일한 효과를 얻을 수 있습니다.
그리고sed:
sed 1d
그리고꼬리:
tail -n +2
물론 Perl, Python 또는 다른 언어를 사용할 수도 있습니다.