파일 이름을 변수로 분할하는 방법은 무엇입니까?

Juliet.Y

다음 형식의 csv 파일 목록이 있다고 가정합니다.

INT_V1_<Product>_<ID>_<Name>_<ddmmyy>.csv
ASG_B1_V1_<Product>_<ID>_<Name>_<ddmmyy>.csv

INT_V1_ & ASG_B1_V1_는 모든 CSV 파일이 시작을 의미 고정됩니다.
파일 이름을 어떻게 변수로 나눌 수 있습니까?
예를 들어, 이름 을 캡처하여 변수에 할당하고 싶었습니다 $Name.

스테판 샤젤 라스

와 함께 zsh:

file='INT_V1_<Product>_<ID>_<Name>_<ddmmyy>.csv'

setopt extendedglob
if [[ $file = (#b)*_(*)_(*)_(*)_(*).csv ]]; then
  product=$match[1] id=$match[2] name=$match[3] date=$match[4]
fi

bash쉬 에뮬레이션 4.3 이상, ksh93t 이상 또는 zsh을 (에 불구하고 zsh, 당신은 단순히 할 것 field=("${(@s:_:)field}")분할의 + 글로브 비 감지 연산자를 사용하는 것보다 분할에 대한 sh당신의 문자열을 분할 수) _문자와 끝에서 그들을 참조 :

IFS=_
set -o noglob
field=($file) # split+glob  operator
date=${field[-1]%.*}
name=${field[-2]}
id=${field[-3]}
product=${field[-4]}

또는 (bash 3.2 이상) :

if [[ $file =~ .*_(.*)_(.*)_(.*)_(.*)\.csv$ ]]; then
  product=${BASH_REMATCH[1]}
  id=${BASH_REMATCH[2]}
  name=${BASH_REMATCH[3]}
  date=${BASH_REMATCH[4]}
fi

( $file현재 로케일에 유효한 텍스트가 포함되어 있다고 가정합니다. 이는 로케일을 문자 문자 세트당 단일 바이트로 C 또는 기타 로케일로 수정하지 않는 한 파일 이름에 대해 보장되지 않습니다.)

zsh*(가), 위 .*입니다 욕심 . 따라서 첫 번째 *_것은 가능한 한 많이 먹으 므로 나머지 .*_자유 문자열 과 만 일치 합니다.

으로 ksh93할 수 있습니다.

pattern='*_(*)_(*)_(*)_(*).csv'
product=${file//$pattern/\1}
id=${file//$pattern/\2}
name=${file//$pattern/\3}
date=${file//$pattern/\4}

POSIX sh스크립트에서 ${var#pattern}, ${var%pattern}표준 매개 변수 확장 연산자를 사용할 수 있습니다 .

rest=${file%.*} # remove .csv suffix
date=${rest##*_} # remove everything on the left up to the rightmost _
rest=${rest%_*} # remove one _* from the right
name=${rest##*_}
rest=${rest%_*}
id=${rest##*_}
rest=${rest%_*}
product=${rest##*_}

또는 split + glob 연산자를 다시 사용하세요.

IFS=_
set -o noglob
set -- $file
shift "$(($# - 4))"
product=$1 id=$2 name=$3 date=${4%.*}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

변수 파일 이름을 가진 .mat 파일을로드하는 방법은 무엇입니까?

분류에서Dev

숫자 이름으로 파일을 분할하는 방법은 무엇입니까?

분류에서Dev

Rails : 로거 파일 이름을 변경하는 방법은 무엇입니까?

분류에서Dev

파일을 분할하고 조건으로 새 변수를 만드는 방법은 무엇입니까?

분류에서Dev

열 수에 따라 파일을 분할하는 방법은 무엇입니까?

분류에서Dev

PHP cURL 연결을 파일로 분할하는 방법은 무엇입니까?

분류에서Dev

ffmpeg로 비디오 파일을 분할하는 방법은 무엇입니까?

분류에서Dev

Perl로 XML 파일을 분할하는 방법은 무엇입니까?

분류에서Dev

현재 배치 파일의 이름을 찾고 변수로 저장하는 방법은 무엇입니까?

분류에서Dev

(정수 유형) 변수의 이름으로 ofstream 파일을 만드는 방법은 무엇입니까?

분류에서Dev

R에서 파일 이름을 변경하는 방법은 무엇입니까?

분류에서Dev

jrxml 파일의 이름을 변경하는 방법은 무엇입니까?

분류에서Dev

파일 이름의 표현을 변경하는 방법은 무엇입니까?

분류에서Dev

WPR 추적 파일 이름을 변경하는 방법은 무엇입니까?

분류에서Dev

bash : 'cat'파일 이후의 모든 변수 이름을 값으로 바꾸는 방법은 무엇입니까?

분류에서Dev

.js 파일에서 변수 이름을 문자열로 바꾸는 방법은 무엇입니까?

분류에서Dev

파일 이름에 변수를 사용하는 방법은 무엇입니까?

분류에서Dev

count로 파일 이름을 바꾸는 방법은 무엇입니까?

분류에서Dev

count로 파일 이름을 바꾸는 방법은 무엇입니까?

분류에서Dev

파일 이름을 .. (점)으로 바꾸는 방법은 무엇입니까?

분류에서Dev

VHDL의 파일 변수에서 파일 이름 문자열을 가져 오는 방법은 무엇입니까?

분류에서Dev

큰 파일을 작은 부분으로 분할하는 방법은 무엇입니까?

분류에서Dev

이름으로 파일을 구문 분석하는 방법은 무엇입니까?

분류에서Dev

여러 스레드로 파일을 여러 파일로 분할하는 방법은 무엇입니까?

분류에서Dev

250k 열이있는 파일을 세로로 분할하는 방법은 무엇입니까?

분류에서Dev

CSV 파일의 열을 별도의 파일로 분할하는 방법은 무엇입니까?

분류에서Dev

CSV 파일의 열을 별도의 파일로 분할하는 방법은 무엇입니까?

분류에서Dev

텍스트 파일을 각각 100 줄의 여러 파일로 분할하는 방법은 무엇입니까?

분류에서Dev

파일 이름을 txt로 출력하는 배치 파일을 만드는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    변수 파일 이름을 가진 .mat 파일을로드하는 방법은 무엇입니까?

  2. 2

    숫자 이름으로 파일을 분할하는 방법은 무엇입니까?

  3. 3

    Rails : 로거 파일 이름을 변경하는 방법은 무엇입니까?

  4. 4

    파일을 분할하고 조건으로 새 변수를 만드는 방법은 무엇입니까?

  5. 5

    열 수에 따라 파일을 분할하는 방법은 무엇입니까?

  6. 6

    PHP cURL 연결을 파일로 분할하는 방법은 무엇입니까?

  7. 7

    ffmpeg로 비디오 파일을 분할하는 방법은 무엇입니까?

  8. 8

    Perl로 XML 파일을 분할하는 방법은 무엇입니까?

  9. 9

    현재 배치 파일의 이름을 찾고 변수로 저장하는 방법은 무엇입니까?

  10. 10

    (정수 유형) 변수의 이름으로 ofstream 파일을 만드는 방법은 무엇입니까?

  11. 11

    R에서 파일 이름을 변경하는 방법은 무엇입니까?

  12. 12

    jrxml 파일의 이름을 변경하는 방법은 무엇입니까?

  13. 13

    파일 이름의 표현을 변경하는 방법은 무엇입니까?

  14. 14

    WPR 추적 파일 이름을 변경하는 방법은 무엇입니까?

  15. 15

    bash : 'cat'파일 이후의 모든 변수 이름을 값으로 바꾸는 방법은 무엇입니까?

  16. 16

    .js 파일에서 변수 이름을 문자열로 바꾸는 방법은 무엇입니까?

  17. 17

    파일 이름에 변수를 사용하는 방법은 무엇입니까?

  18. 18

    count로 파일 이름을 바꾸는 방법은 무엇입니까?

  19. 19

    count로 파일 이름을 바꾸는 방법은 무엇입니까?

  20. 20

    파일 이름을 .. (점)으로 바꾸는 방법은 무엇입니까?

  21. 21

    VHDL의 파일 변수에서 파일 이름 문자열을 가져 오는 방법은 무엇입니까?

  22. 22

    큰 파일을 작은 부분으로 분할하는 방법은 무엇입니까?

  23. 23

    이름으로 파일을 구문 분석하는 방법은 무엇입니까?

  24. 24

    여러 스레드로 파일을 여러 파일로 분할하는 방법은 무엇입니까?

  25. 25

    250k 열이있는 파일을 세로로 분할하는 방법은 무엇입니까?

  26. 26

    CSV 파일의 열을 별도의 파일로 분할하는 방법은 무엇입니까?

  27. 27

    CSV 파일의 열을 별도의 파일로 분할하는 방법은 무엇입니까?

  28. 28

    텍스트 파일을 각각 100 줄의 여러 파일로 분할하는 방법은 무엇입니까?

  29. 29

    파일 이름을 txt로 출력하는 배치 파일을 만드는 방법은 무엇입니까?

뜨겁다태그

보관