sed/awk를 사용하여 첫 번째 공백 이후의 항목을 제거하세요.

sed/awk를 사용하여 첫 번째 공백 이후의 항목을 제거하세요.
aaaaaaaa 09  
bbbbbbbb 90   
ccccccccccccccc  89  
ddddd 09

sed/awk/replace를 사용하여 위 텍스트에서 각 줄의 첫 번째 공백 뒤의 모든 항목을 제거하고 싶습니다. 예를 들어 출력은 다음과 같습니다.

aaaaaaaa  
bbbbbbbb    
ccccccccccccccc  
ddddd 

어떤 도움이라도 대단히 감사하겠습니다.

답변1

sed 's/\s.*$//'

grep

grep -o '^\S*'

awk '{print $1}'

의견에서 지적했듯이 -o이것은 POSIX가 아니지만 GNU와 BSD에는 있으므로 대부분의 사람들에게 작동합니다.

또한 \s/는 모든 시스템에 존재하지 않을 수 있습니다 \S. 시스템이 이를 인식하지 못하는 경우 리터럴 공백을 사용할 수 있습니다. 또는 공백과 탭이 필요한 경우 해당 또는 [...]대괄호 표현식( ) 클래스의[[:blank:]] 문자를 사용할 수 있습니다. 신경 쓰지 않을 수 있는 CR, LF 또는 VT뿐만 아니라 세로 간격 문자와 \s동일 하며 포함됩니다.[[:space:]]

awk 줄이 공백 문자로 시작하지 않는다고 가정합니다 .

답변2

cut -d ' ' -f 1 < your-file

가장 효과적일 것입니다.

답변3

awk '{print $1}' file

또는

sed 's/ .*//'

답변4

그리고 지나가던 그 사람 perl,

$ perl -pe 's/^([^ ]+) .*$/\1/' file
aaaaaaaa
bbbbbbbb
ccccccccccccccc
ddddd

GNU grep을 통해,

$ grep -oP '^[^ ]*' file
bbbbbbbb
ccccccccccccccc
ddddd

관련 정보