반응형
명령의 배열에 할당 할당입니까?
a의 결과를 grep
배열 에 할당해야합니다 ... 예를 들어
grep -n "search term" file.txt | sed 's/:.*//'
이로 인해 검색어가 발견 된 줄 번호가있는 줄이 여러 개 생성됩니다.
1
3
12
19
Bash 배열에 할당하는 가장 쉬운 방법은 무엇입니까? 변수에 할당하면 공백으로 구분됩니다.
명령의 출력을 배열에 할당해야합니다. 일반 명령의 경우 다음과 가변 command
합니다.
arr=( $(command) )
OP의 예에서 이것은 다음과 가변적입니다.
arr=($(grep -n "search term" file.txt | sed 's/:.*//'))
내부 $()
는 명령을 실행하고 외부 ()
는 출력을 배열로 만듭니다. 문제는 명령의 출력에 공백이 있기 때문에 작동하지 않습니다. 이를 처리하기 위해 접근 할 IFS
수 \n
있습니다.
IFS=$'\n'
arr=($(grep -n "search term" file.txt | sed 's/:.*//'))
unset IFS
배열의 각 요소에 대해 확장을 수행하여 가동 수도 있습니다.
arr=($(grep -n "search term" file.txt))
arr=("${arr[@]%%:*}")
공백으로 구분 된 언어는 bash에서 쉽게 순회 할 수 있습니다.
# save the ouput
output=$(grep -n "search term" file.txt | sed 's/:.*//')
# iterating by for.
for x in $output; do echo $x; done;
# awk
echo $output | awk '{for(i=1;i<=NF;i++) print $i;}'
# convert to an array
ar=($output)
echo ${ar[3]} # echos 4th element
파일 이름에 공간을 생각하고 권한 부여 find . -printf "\"%p\"\n"
참고 URL : https://stackoverflow.com/questions/9449417/how-do-i-assign-the-output-of-a-command-into-an-array
반응형
'ProgramingTip' 카테고리의 다른 글
addTarget : action : forControlEvents : method에 해당하는 UIButton 블록 (0) | 2020.11.27 |
---|---|
ORA-00904 : 잘못된 식별자 (0) | 2020.11.27 |
C의 수학 상수 PI 값 (0) | 2020.11.27 |
브라우저 감지 jQuery 1.9를위한 가장 가벼운 교체? (0) | 2020.11.27 |
TabWidget 현재 탭 하단 선 색상 (0) | 2020.11.27 |