awk 또는 sed는 증분 홀수 및 짝수 줄을 표시합니다.

awk 또는 sed는 증분 홀수 및 짝수 줄을 표시합니다.

텍스트 파일에서 화면으로 홀수 줄과 짝수 줄을 점진적으로 표시하는 데 도움이 필요합니다.

텍스트 파일

10101 
AsPO4IF+tGU=
01010 
WvTzUYrxvXY=
00101
CfZzsDDKW98=

아래 스크립트에 갇혀 있습니다.

result=Textfile
while IFS='' read -r line || [[ -n "$line" ]];
echo "`awk or sed odd line $result`" "`awk or sed even line $result`"
done < "$result"

출력이 필요함

"AsPO4IF+tGU=" "10101" 

"WvTzUYrxvXY=" "01010" 

"CfZzsDDKW98=" "00101" 

텍스트 파일에서 EOF에 도달하면 스크립트를 중지합니다.

시간 내 주셔서 감사합니다.

답변1

파일의 줄을 반복할 필요가 없습니다. awk이것이 바로 당신이 잘하는 일입니다.

awk '
    NR%2 != 0 {last=$0}
    NR%2 == 0 {printf "\"%s\" \"%s\"\n",$0,last}
' file

답변2

sed외부 루프도 필요하지 않습니다 .

sed -E '$!N;s/(.*)\n(.*)/"\2" "\1"/' file
  • -E()읽기 쉽 도록 확장 정규 표현식을 사용하세요.
  • $!N짝이 없는 행이 있는 경우 항상 N마지막 행( )을 제외하고 패턴 공간의 두 행을 연결( ) 합니다.$!
  • s/(.*)\n(.*)/"\2" "\1"/두 줄을 뒤집고 줄 바꿈을 공백으로 바꾸고 큰따옴표를 추가합니다.

답변3

나는 다음 방법으로 그것을했다

주문하다:

sed "N;s/\n/ /g" filename | awk '{print $2,$1}'| sed 's/^/"/g'| sed 's/$/"/g'| sed 's/=/"&"/g'

산출

"AsPO4IF+tGU"=" 10101"
"WvTzUYrxvXY"=" 01010"
"CfZzsDDKW98"=" 00101"

관련 정보