숫자 목록을 출력하는 명령을 실행하고 있습니다. for 루프를 사용하여 명령을 5번 실행하고 있습니다. 각 출력에 대해 이 숫자를 기존 텍스트 파일의 해당 줄에 추가하고 싶습니다.
명령 출력:
# execute_command
20
30
480
50
루프가 있는 명령
for i in {1..5};
# execute_command
루프를 사용한 명령 출력
20
30
480
50
30
50
60
70
90
20
20
40
40
35
60
70
90
50
40
10
앞으로
이것은 제가 만든 텍스트 파일입니다.
cat:
rabbit:
car:
can:
뒤쪽에
기존 텍스트 파일에 명령 출력을 추가하고 싶습니다.
첫 번째 반복
cat: 20
rabbit: 30
car: 480
can: 50
두 번째 반복
cat: 20, 30
rabbit: 30, 50
car: 480, 60
can: 50, 70
세 번째 반복
cat: 20, 30, 90
rabbit: 30, 50, 20
car: 480, 60, 20
can: 50, 70, 40
네 번째 반복
cat: 20, 30, 90, 40,
rabbit: 30, 50, 20, 35
car: 480, 60, 20, 60
can: 50, 70, 40, 70
다섯 번째 반복
cat: 20, 30, 90, 40, 90
rabbit: 30, 50, 20, 35, 50
car: 480, 60, 20, 60, 40
can: 50, 70, 40, 70, 10
도와주세요. 매우 감사합니다!
답변1
sed
이것은 포인터 와 명령을 사용하는 것입니다 paste
.
귀하의 것(등이 포함된 열 포함 base_file
)에는 4개의 행이 있습니다. 목록이 모두 소진될 때까지 처음 4줄(즉, 명령의 출력)을 체계적으로 "이동"하고 붙여넣어야 합니다.cat:
rabbit:
numbers_list
다음 명령을 고려하십시오.
sed -n '1,4p' numbers_list | paste base_file -
이것은 만든다:
cat: 20
rabbit: 30
car: 480
can: 50
이 출력은 다음 base_file
이름의 임시 파일에 넣을 수 있습니다 nbase_file
.
sed -n '1,4p' numbers_list | paste base_file - >nbase_file
그 다음에
mv nbase_file base_file
이제 처음 네 줄을 삭제하십시오 numbers_list
.
sed -i '1,4d' numbers_list
그리고 루프를 사용하여 프로세스를 반복합니다.
새 항목은 탭으로 구분되어 붙여넣어집니다. 따라서 쉼표를 구분 기호로 사용하려면 -d ","
with 명령을 사용해야 할 수도 있습니다.paste