명령에 대해 다른 파일의 텍스트 사용

명령에 대해 다른 파일의 텍스트 사용

파일에서 데이터를 추출하여 올바른 형식으로 출력하는 작업 방법을 찾으려고 합니다.

data.txt라는 파일이 있고 다음과 같이 보인다고 가정해 보겠습니다.

abc 123
def 456

그런 다음 스크립트를 사용하여 데이터를 구문 분석하고 다음과 같이 표시하려고 합니다.

first abc second 123
third def fourth 456

지금까지 나는 이것을 만들었습니다:

#!/bin/sh
#

for i in data.txt; do while read -r a b; do
    echo "First $a second $b"
    echo "third $a fourth $b"

done < data.txt
done

출력은 다음과 같습니다.

First abc second 123
third abc fourth 123
First def second 456
third def fourth 456

따라서 각 줄을 읽고 한 번 적용하고 data.txt의 다음 줄로 이동하는 대신 다음 echo 명령에 동일한 데이터를 계속 적용한 후 다음 줄로 이동합니다. 제가 아마도 간단한 것을 간과하고 있다는 것을 알지만, 정말 긴 하루였습니다. :)

답변1

단일 루프에서 두 개의 읽기를 수행할 수 있습니다.

#!/bin/sh

while read -r a b && read -r c d; do
  echo "First $a second $b"
  echo "third $c fourth $d"
done < data.txt

실제 응용 프로그램에 따라 ex를 보고 싶을 수도 있습니다 xargs.

xargs -L2 /bin/printf 'First %s second %s\nthird %s fourth %s\n' < data.txt

관련 정보