readarray를 사용하면 줄 구분 기호를 지정할 수 있나요?

readarray를 사용하면 줄 구분 기호를 지정할 수 있나요?

bash에서는 read내장 명령을 사용하여 -d개행 이외의 줄 구분 기호를 지정할 수 있습니다.

readarray줄 구분 기호를 지정하는 방법이 있나요 ?

  • 이 목적을 위한 옵션이 없습니다. 맞나요?
  • 필드 구분 기호 와 유사한 이 목적을 위한 쉘 기본 변수가 있습니까 IFS?

감사해요.


스틸드라이버님의 댓글을 보고,

$ bash --version
GNU bash, version 4.4.19(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

$ help readarray
readarray: readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]
    Read lines from a file into an array variable.

    A synonym for `mapfile'.

그러나 나는 다음과 같은 사실을 알게 되었습니다.

$ help mapfile
mapfile: mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]
    Read lines from the standard input into an indexed array variable.

    Read lines from the standard input into the indexed array variable ARRAY, or
    from file descriptor FD if the -u option is supplied.  The variable MAPFILE
    is the default ARRAY.

    Options:
      -d delim  Use DELIM to terminate lines, instead of newline
...

답변1

Bash 버전 4.4부터는 그렇습니다. 발표로 판단하면Bash-4.4 버전 사용 가능:

가장 주목할만한 새로운 기능은 임의의 레코드 구분 기호를 사용하는 Mapfile의 기능입니다.

( readarray예의 동의어 mapfile). 설명은 다음과 man bash같습니다.

          -d     The first character of delim is used  to  terminate  each
                 input line, rather than newline.

관련 정보