파일의 첫 번째 줄을 가져와서 나머지 줄의 시작 부분에 넣고 싶습니다. 예를 들어, 어떻게 변환합니까?
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/'
개행 문자 앞과 뒤의 부분을 바꿔 개행 문자를 콜론과 공백으로 바꿉니다.