![ash - 구성 파일을 한 줄씩 구문 분석합니다.](https://linux55.com/image/205458/ash%20-%20%EA%B5%AC%EC%84%B1%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%ED%95%9C%20%EC%A4%84%EC%94%A9%20%EA%B5%AC%EB%AC%B8%20%EB%B6%84%EC%84%9D%ED%95%A9%EB%8B%88%EB%8B%A4..png)
내 구성 파일은 다음과 같습니다.
ver 3
file test1.conf ~/etc
file test2.conf ~/etc/conf
script tst.sh
내 스크립트가 "file"이라는 접두사가 붙은 모든 줄을 반복하고, 파일 이름과 위치 값을 추출하고, 일부 작업을 수행하길 원합니다. 지금부터 나는 다음을 얻습니다:
files=$(cat file.conf | grep file)
하지만 각 행에서 두 번째와 세 번째 문자열을 추출하기 위해 반복을 수행하는 방법을 잘 모르겠습니다.
답변1
POSIX 쉘에서와 마찬가지로:
while read type name path; do
if [ "$type" = file ]; then
echo "$path/$name";
fi
done < your.conf
read
행을 변수로 분할하고, 첫 번째 변수를 테스트하고 file
, 다른 요소로 수행하려는 작업을 수행하는 데 사용됩니다 . awk
그런 건 필요하지 않습니다 .