UNIX를 사용하여 처리 할 파일의 파일 확장자를 찾아야합니다. 내가 처리 할 두 개의 파일 확장자는 '.dat'와 '.csv'입니다.UNIX를 사용하여 파일 확장자를 찾는 방법은 무엇입니까?
어떻게 할 수 있는지 알려 주시기 바랍니다.
UNIX를 사용하여 처리 할 파일의 파일 확장자를 찾아야합니다. 내가 처리 할 두 개의 파일 확장자는 '.dat'와 '.csv'입니다.UNIX를 사용하여 파일 확장자를 찾는 방법은 무엇입니까?
어떻게 할 수 있는지 알려 주시기 바랍니다.
내 찌르기.
filename=file.dat
extension=$(echo ${filename}|awk -F\. '{print $2}')
if [ ${extension} == "dat" ]; then
your code here
fi
awk로 출력되는 변수 $ {filename} 파이프를 에코합니다. awk를 사용하여 필드 구분 기호를 a로 재설정하십시오. 필드 2 (인쇄 $ 2 부분)를 가져 오십시오
'find '가이 정확한 문제를 해결하기 위해 고안되었을 때 왜'awk'를 사용합니까? – jacobsimeon
find . -name "*.dat" -o -name "*.csv"
현재 디렉터리와 재귀 적으로 두 개의 확장자로 끝나는 모든 파일을 찾습니다.
하자 말합 'test.dat'라는 단일 파일이있는 경우 현재 파일에 '.dat'파일 확장자가 있는지 어떻게 알 수 있습니까? 위의 스크립트는 .dat 확장자의 모든 파일을 나열합니다. – Arun
'찾기. -name test.dat'는'test.dat'라는 파일 만 찾습니다. – jacobsimeon
당신은 변수에 이름이있는 경우
filename = test.csv
후 바로 "CSV"부분을 얻기 위해 이것을 사용 : bash에 대한
echo ${filename##*.}
작품을 KSH
에 그것을 시도편집 :
filename=test.csv
fileext=${filename##*.}
if [ fileext = "csv" ]; then
echo "file is csv, do something"
else
if [ fileext = "dat" ]; then
echo "file is dat, do something"
else
echo "mhh what now?"
fi
fi
확장자가없는 파일 이름은 필요 없어요 ... 나는 무엇인지 알아야합니다. 내가 처리 할 시간의 연장. – Arun
귀하의 의견에 응답, 위의 참조 ... –
find /path -type f \(-name "*.dat" -o -name "*.csv" \) | while read -r file
do
echo "Do something with $file"
done
답변을 찾았습니까? –