안녕하세요. row1 데이터를 가져와서 열에 넣은 다음 row2에서도 동일한 작업을 수행하고 열을 확장하고 싶습니다.
전임자:
이것
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21
이와 관련하여
1
2
3
4
5
6
7
8
9
10
...
Bash에서 어떻게 할 수 있나요?
감사해요.
답변1
GNU를 사용하면 grep
다음을 사용할 수 있습니다.
grep -Eo '\S+'
한 줄에 +
하나 이상의 공백이 아닌 문자( )의 모든 시퀀스를 인쇄합니다.\S
답변2
몇 가지 추가 옵션:
를 사용
awk
하고 출력 필드 구분 기호를 개행 문자로 설정합니다.awk '{NF+=0} 1' OFS='\n' file
사용
rs
(아르 자형이자형에스hape) 출력 열 수를 설정하는 유틸리티1
(0
행 수는 "필요한 수"를 나타냄)rs 0 1 < file
답변3
일련의 공백을 개행 문자로 바꾸는 것이 가장 쉬운 것 같습니다.
tr
이 작업을 수행할 수 있습니다( -s
핵심은 다음과 같습니다).
$ tr -s ' ' '\n' < file.txt
첫 번째 줄은 앞에 공백이 있기 때문에 비어 있습니다 1
.
또는 GNU sed를 사용하십시오:
sed -E -e 's/^ +//; s/ +$//; s/ +/\n/g' < file.txt
처음 두 대체 항목은 가짜 빈 줄을 방지하기 위해 각 줄의 선행 및 후행 공백을 제거합니다.
(이것이 작동하려면 GNU sed가 필요합니다 \n
.)