왜 여분의 빈 줄이 있습니까? [복사]

왜 여분의 빈 줄이 있습니까? [복사]

공백으로 구분된 가로 데이터가 있습니다.

0 2 32 323 443 ...

가로로 나열된 파일을 세로로 나열된 파일로 변환하여 정렬하는 쉘 스크립트를 만들었습니다.

filename=/tmp/vList
colcount=$(wc -w < "$1")
counter=1
sortResult=0

while [ "$counter" -le "$colcount" ] 
do
cat "$1" | cut -d " " -f"$counter">>"$filename"
counter=$((counter+1))
done

작동하지만 가로 목록의 각 값 사이에 빈 행을 포함하는 세로 목록을 만듭니다.


0

2

32

323

빈 줄이 나타나는 이유와 이를 방지하는 방법은 무엇입니까?

[편집] IsaaC의 제안 이후 제 질문이 이전 질문과 중복되고 유사하며 심지어 동일한 답변이라는 것을 발견하여 이 질문을 닫아야 합니다. 모든 기여자에게 감사드립니다.

답변1

다음과 같은 방법으로 이 작업을 수행할 수 있습니다 tr.

tr ' ' '\n' < file

예를 들어:

% cat file
0 2 32 323 443
% tr ' ' '\n' < file
0
2
32
323
443

답변2

perl -pne "s/ /\n/g" filename

산출

0
2
32
323
443

답변3

이것이 당신이 원하는 순수한 쉘 스크립트라고 확신합니까?

grep -o '\S\+' input.file

또는

sed 's/[[:blank:]\n]\+/\n/g' input.file

또는

awk -v RS='([[:blank:]\n]+)' '1' input.file

또는

awk '{ for(i=1;i<=NF;i++) print $i }' input.file

...더 정확할 수도 있습니다.

답변4

더 좋은 방법:

#!/bin/bash
filename="/tmp/vList"
for i in $(cat "$filename") ; do
    echo "$i"
fi

관련 정보