Bash 배열에서 매개 변수 대체 사용

존 레드

Bash 배열로 읽어야하는 file.txt가 있습니다. 그런 다음 공백, 큰 따옴표 및 모든 항목에서 첫 번째 쉼표를 제외한 모든 항목 을 제거해야합니다 . 내가 얼마나 멀리 왔는지 :

$ cat file.txt
10,this
2 0 , i s
30,"all"
40,I
50,n,e,e,d,2
60",s e,e"

$ cat script.sh
#!/bin/bash
readarray -t ARRAY<$1
ARRAY=( "${ARRAY[@]// /}" )
ARRAY=( "${ARRAY[@]//\"/}" )
for ELEMENT in "${ARRAY[@]}";do
    echo "|ELEMENT|$ELEMENT|"
done

$ ./script.sh file.txt
|ELEMENT|10,this|
|ELEMENT|20,is|
|ELEMENT|30,all|
|ELEMENT|40,I|
|ELEMENT|50,n,e,e,d,2|
|ELEMENT|60,se,e|

쉼표 상황을 제외하고는 잘 작동합니다. 이 고양이를 스킨하는 방법에는 여러 가지가 있다는 것을 알고 있지만이 부분이 포함 된 더 큰 스크립트로 인해 매개 변수 대체를 사용하여 여기에 도달하고 싶습니다.

|ELEMENT|10,this|
|ELEMENT|20,is|
|ELEMENT|30,all|
|ELEMENT|40,I|
|ELEMENT|50,need2|
|ELEMENT|60,see|

매개 변수 대체를 통해 가능합니까?

멘돈

배열에로드 sed 하기 전에 using 제거해야하는 항목을 제거 합니다 (또한 소문자 변수 이름에 유의하십시오. 일반적으로 쉘 스크립트에서 대문자 변수를 사용하지 않는 것이 가장 좋습니다).

#!/bin/bash
readarray -t array< <(sed 's/"//g; s/  *//g; s/,/"/; s/,//g; s/"/,/' "$1")
for element in "${array[@]}";do
    echo "|ELEMENT|$element|"
done

그러면 예제 파일에 다음과 같은 출력이 생성됩니다.

$ foo.sh file 
|ELEMENT|10,this|
|ELEMENT|20,is|
|ELEMENT|30,all|
|ELEMENT|40,I|
|ELEMENT|50,need2|
|ELEMENT|60,see|

정말로 매개 변수 대체를 사용해야하는 경우 다음과 같이 시도하십시오.

#!/bin/bash
readarray -t array< "$1"
array=( "${array[@]// /}" )
array=( "${array[@]//\"/}" )
array=( "${array[@]/,/\"}" )
array=( "${array[@]//,/}" )
array=( "${array[@]/\"/,}" )

for element in "${array[@]}"; do
    echo "|ELEMENT|$element|"
done

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Bash 배열에서 매개 변수 대체 사용

분류에서Dev

C ++에서 구조체 배열을 매개 변수로 사용

분류에서Dev

bash 스크립트의 명령에 대한 매개 변수로 변수 사용

분류에서Dev

Makefile에서 Bash 매개 변수 대체를 사용하는 방법은 무엇입니까?

분류에서Dev

bash에서 루프를 사용하여 pdftk에 대한 매개 변수 생성

분류에서Dev

bash에서 비밀번호 매개 변수 값 대체

분류에서Dev

Perl 매개 변수에서 bash 변수 사용

분류에서Dev

Bash 매개 변수 확장 : 속도에 대한 모범 사례?

분류에서Dev

bash 함수에서 위치 매개 변수 사용

분류에서Dev

명령 내 Bash 매개 변수 대체

분류에서Dev

bash에서 매개 변수 텍스트 파일 사용

분류에서Dev

다른 개체 매개 변수와 동일한 개체에서 사용되는 개체 매개 변수?

분류에서Dev

매개 변수가 명령 대체 내에서 사용될 때 단어 분할

분류에서Dev

glob 패턴 (zsh)에서 매개 변수 대체를 사용하는 방법

분류에서Dev

함수 핸들러 매개 변수에서 배열 사용

분류에서Dev

함수 매개 변수에 개체 사용

분류에서Dev

bash 스크립트에서 cp 및 mv의 대상으로 명령 줄 매개 변수 사용

분류에서Dev

Bash는 매개 변수 확장의 문자열 대체 섹션에서 인용을 어떻게 처리합니까?

분류에서Dev

템플릿 매개 변수를 람다에 대한 매개 변수로 사용하여 매개 변수화

분류에서Dev

다른 열의 매개 변수를 사용한 다중 순차 대체

분류에서Dev

Bash에서 단일 배열의 값 사이에서 다른 매개 변수를 어떻게 비교합니까?

분류에서Dev

curl을 사용하여 bash 스크립트에서 매개 변수 사용

분류에서Dev

Postgres 동적 SQL에서 배열을 매개 변수로 사용

분류에서Dev

Postgres 동적 SQL에서 배열을 매개 변수로 사용

분류에서Dev

mysql과 유사한 문자열의 매개 변수 대체

분류에서Dev

함수 매개 변수로 구조체 배열에서 화살표 연산자 (->) 대신 도트 연산자 (.)를 사용하는 이유는 무엇입니까?

분류에서Dev

Bash 변수 매개 변수 확장 전체 문서

분류에서Dev

객체 (두 번째 매개 변수)와 함께 배열 (첫 번째 매개 변수)에서 for 루프 반복 사용

분류에서Dev

내 API 호출에 기본 매개 변수 대신 객체 구조화 사용

Related 관련 기사

  1. 1

    Bash 배열에서 매개 변수 대체 사용

  2. 2

    C ++에서 구조체 배열을 매개 변수로 사용

  3. 3

    bash 스크립트의 명령에 대한 매개 변수로 변수 사용

  4. 4

    Makefile에서 Bash 매개 변수 대체를 사용하는 방법은 무엇입니까?

  5. 5

    bash에서 루프를 사용하여 pdftk에 대한 매개 변수 생성

  6. 6

    bash에서 비밀번호 매개 변수 값 대체

  7. 7

    Perl 매개 변수에서 bash 변수 사용

  8. 8

    Bash 매개 변수 확장 : 속도에 대한 모범 사례?

  9. 9

    bash 함수에서 위치 매개 변수 사용

  10. 10

    명령 내 Bash 매개 변수 대체

  11. 11

    bash에서 매개 변수 텍스트 파일 사용

  12. 12

    다른 개체 매개 변수와 동일한 개체에서 사용되는 개체 매개 변수?

  13. 13

    매개 변수가 명령 대체 내에서 사용될 때 단어 분할

  14. 14

    glob 패턴 (zsh)에서 매개 변수 대체를 사용하는 방법

  15. 15

    함수 핸들러 매개 변수에서 배열 사용

  16. 16

    함수 매개 변수에 개체 사용

  17. 17

    bash 스크립트에서 cp 및 mv의 대상으로 명령 줄 매개 변수 사용

  18. 18

    Bash는 매개 변수 확장의 문자열 대체 섹션에서 인용을 어떻게 처리합니까?

  19. 19

    템플릿 매개 변수를 람다에 대한 매개 변수로 사용하여 매개 변수화

  20. 20

    다른 열의 매개 변수를 사용한 다중 순차 대체

  21. 21

    Bash에서 단일 배열의 값 사이에서 다른 매개 변수를 어떻게 비교합니까?

  22. 22

    curl을 사용하여 bash 스크립트에서 매개 변수 사용

  23. 23

    Postgres 동적 SQL에서 배열을 매개 변수로 사용

  24. 24

    Postgres 동적 SQL에서 배열을 매개 변수로 사용

  25. 25

    mysql과 유사한 문자열의 매개 변수 대체

  26. 26

    함수 매개 변수로 구조체 배열에서 화살표 연산자 (->) 대신 도트 연산자 (.)를 사용하는 이유는 무엇입니까?

  27. 27

    Bash 변수 매개 변수 확장 전체 문서

  28. 28

    객체 (두 번째 매개 변수)와 함께 배열 (첫 번째 매개 변수)에서 for 루프 반복 사용

  29. 29

    내 API 호출에 기본 매개 변수 대신 객체 구조화 사용

뜨겁다태그

보관