aaaaaaaa 09
bbbbbbbb 90
ccccccccccccccc 89
ddddd 09
위의 텍스트에서 sed / awk / replace를 사용하여 각 줄의 첫 번째 공백 다음에 나오는 것을 제거하고 싶습니다. 예를 들어 출력은 다음과 같습니다.
aaaaaaaa
bbbbbbbb
ccccccccccccccc
ddddd
도움을 주시면 감사하겠습니다.
답변
세드
sed 's/\s.*$//'
그렙
grep -o '^\S*'
어 wk
awk '{print $1}'
의견에서 지적했듯이 -o
POSIX는 아닙니다. 그러나 GNU와 BSD 모두 가지고 있기 때문에 대부분의 사람들에게 효과적입니다.
또한, \s
/ \S
당신이 그것을 인식하지 못하는 경우가 문자 그대로의 공간을 사용하거나 공간과 탭, 브라켓 표현 (에 그 싶은 경우에 할 수있는 모든 시스템에하지 않을 수 있습니다 [...]
), 또는 [[:blank:]]
엄밀히 말하자면 그 문자 클래스를 (주 \s
입니다 [[:space:]]
CR, LF 또는 VT와 같이 세로 간격 문자와 동일 하고 포함합니다.
awk
하나는 선이 빈 문자로 시작하지 않는 가정합니다.
답변
cut -d ' ' -f 1 < your-file
가장 효율적입니다.
답변
awk '{print $1}' file
또는
sed 's/ .*//'
답변
그리고를 통해 하나 perl
,
$ perl -pe 's/^([^ ]+) .*$/\1/' file
aaaaaaaa
bbbbbbbb
ccccccccccccccc
ddddd
GNU grep을 통해
$ grep -oP '^[^ ]*' file
bbbbbbbb
ccccccccccccccc
ddddd