동일한 파일의 나머지 부분에 있는 각 줄 앞에 파일의 첫 번째 줄을 추가합니다.

동일한 파일의 나머지 부분에 있는 각 줄 앞에 파일의 첫 번째 줄을 추가합니다.

파일의 첫 번째 줄을 가져와서 나머지 줄의 시작 부분에 넣고 싶습니다. 예를 들어, 어떻게 변환합니까?

black
widow
card
Friday
berry

이것에 들어가나요? :

black: widow
black: card
black: Friday
black: berry

추가 파일과 변수를 명시적으로 생성하지 않고도 이 작업을 수행할 수 있습니까?

답변1

간단한 명령으로 awk이를 수행할 수 있습니다 .

awk 'NR == 1 {a=$0;next} { printf("%s: %s\n",a,$0)}' file_name

답변2

이건 아닐 수도 있어최고sed에서 이를 수행할 수 있는 방법이 있지만 다음과 같습니다.

$ sed '1{h;d;}; G; s/\(.*\)\n\(.*\)/\2: \1/' file
black: widow
black: card
black: Friday
black: berry

설명하다:

  • 1{h;d;}첫 번째 줄은 패턴 공간을 복사하여 공간을 보존한 후 삭제하세요.
  • G패턴 공간의 내용에 개행 문자를 추가한 다음, 예약된 공간의 내용을 패턴 공간의 내용에 추가합니다. 이제 패턴 공간에 올바른 두 단어가 있지만 순서가 잘못되고 구분 기호( \n대신 :) 가 잘못되었습니다.
  • s/\(.*\)\n\(.*\)/\2: \1/'개행 문자 앞과 뒤의 부분을 바꿔 개행 문자를 콜론과 공백으로 바꿉니다.

관련 정보