와 이름 공간에 파일을 구문 분석하는 방법 :은 내가 데이터베이스 삽입을위한 구성 요소로 파일 이름을 분할하는 스크립트를 만들었습니다 어떻게 awk는
find . -name "R*VER" | while read fname
do
awk -v squote="'" -v base=${fname##*/} '
{
split(base, a, "~");
printf("INSERT INTO REPORT (COL1,COL2,COL3,COL4,COL5,COL6,COL7,COL8)\n");
str = sprintf("VALUES (\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\")", base, a[1], a[2], a[3], a[7], a[8], a[9], a[10]);
gsub("\"", squote, str); # replace double quotes with singles
print str;
}'
done
그것은 오늘날까지 큰했다. 새 파일 이름은 a[1]
에 공백이 포함 된 곳을 입력했습니다 (예 : something here~...
).
지금, 나는 다음과 같이 파일의 혼합이 : 나는 find . -name "* *"
에 find . -name "R*VER"
에서 find
을 수정할
R1~blah~blahblah...VER
및 R 4~blah~blahblah...VER
을하지만이 파일 이름에 공백없이 모든 파일을 제외합니다 .
가장 효율적인 방법은 무엇입니까?
awk-script를 별도의 파일에 넣고'find를 사용하십시오. -name ... -exec database_insert.sh {} \;' –
이것이 왜 문제인지 이해가되지 않습니다. 공백이있는 이름을 제외 하시겠습니까? 공백을 제거 하시겠습니까? –