텍스트 파일에서 화면으로 홀수 줄과 짝수 줄을 점진적으로 표시하는 데 도움이 필요합니다.
텍스트 파일
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"