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