Paste -d 또는 tr을 사용하여 세로 텍스트를 가로 텍스트로 변환합니다.

Paste -d 또는 tr을 사용하여 세로 텍스트를 가로 텍스트로 변환합니다.

세로 형식의 데이터 목록이 있는데 가로 형식의 데이터 목록을 원합니다.

fl.txt:

data
1
2
3
4
5

원하는 출력은 다음과 같습니다.

1 2 3 4 5

내 코드: 이 명령을 사용하면 마지막 값인 5만 인쇄됩니다.

 paste -s -d "" fl.txt

답변1

Windows 텍스트 데이터가 포함된 파일을 사용하고 있다는 것은 주석을 통해 분명합니다. 다음 명령을 사용하여 Unix 텍스트 파일로 변환합니다 dos2unix.

dos2unix fl.txt

DataUnix 텍스트 파일이면 sed 1d fl.txt헤더가 포함된 파일의 첫 번째 줄을 사용하거나 제거 할 수 있습니다 tail -n +2 fl.txt.

결과 행은 모든 개행 문자를 공백으로 바꾸면 한 줄에서 공백으로 구분된 열로 변환될 수 있습니다.

sed 1d fl.txt | tr '\n' ' '

그러나 이렇게 하면 개행 문자로 끝나지 않는 출력이 생성됩니다.

paste제안한 것과 비슷한 방식으로 사용할 수도 있습니다 .

sed 1d fl.txt | paste -s -d ' ' -

paste명령은 개행 문자로 끝나는 단일 라인을 생성합니다.

답변2

GNU sed 사용

sed '1d; s/\r$//' f1.txt | paste -sd " "

또는 sed에 붙여넣기 부분을 구현하세요.

sed -n '1d; s/\r$//; H; ${ x; s/^\n//; s/\n/ /g; p }' f1.txt

답변3

Bash 또는 ksh93의 간단한 옵션:

echo $(<fl.txt)

또는:

xargs -a fl.txt

첫 번째 줄은 다음과 같이 삭제할 수 있습니다.

{ head -1 >/dev/null; paste -sd' '; } <fl.txt

또는:

{ head -1 >/dev/null; fmt -100; } <fl.txt

서브셸에서:

(>/dev/null head -1; xargs) <fl.txt

관련 정보