텍스트 파일을 입력으로 사용하고 스프레드시트를 출력으로 생성하는 쉘 스크립트를 작성 중입니다. 아래 표시된 것과 유사한 텍스트 파일이 있습니다.
Name:John
Age:30
Gender:male
Name:Bob
Age:65
Gender:Male
그리고 이 패턴은 계속해서 여러번 반복됩니다. 아래와 같이 이름, 나이, 성별 필드가 포함된 스프레드시트를 만들어야 합니다.
Name Age Gender
John 30 Male
Bob 65 Male
어떤 도움이라도 대단히 감사하겠습니다.
답변1
Excel로 가져올 준비가 된 탭으로 구분된 텍스트 파일을 만듭니다.
printf "Name\tAge\tGender\n" > outfile
cut -d: -f2- <infile | paste - - - >> outfile
printf
탭으로 구분된 제목 만들기cut
두 번째 필드부터 줄 끝까지paste
출력을 탭으로 구분된 세 개의 열로 형식화하고 출력 파일을 수정합니다.
명령을 그룹화하고 한 번만 리디렉션할 수도 있습니다.
{
printf '%s\t%s\t%s\n' Name Age Gender
cut -d: -f2- <infile | paste - - -
} > outfile
답변2
파일에 항상 레코드당 세 줄이 포함되어 있으면 다음이 작동합니다.
echo "Name Age Gender" >>OUTPUT.txt; xargs -n 3 < INPUTFILE.txt |sed 's/Name:\|Age:\|Gender://g' >> OUTPUT.txt
나는 이것을 처리하는 더 설득력 있는 방법이 있다고 확신합니다.