파일에서 데이터를 추출하여 올바른 형식으로 출력하는 작업 방법을 찾으려고 노력 중입니다.
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
실제 애플리케이션에 따라 xargs
ex.
xargs -L2 /bin/printf 'First %s second %s\nthird %s fourth %s\n' < data.txt