Yanıtlar:
sed
sed 's/\s.*$//'
grep
grep -o '^\S*'
awk
awk '{print $1}'
Yorumlarda belirtildiği gibi -o
POSIX değil; ancak hem GNU hem de BSD'ye sahiptir, bu yüzden çoğu insan için çalışmalıdır.
Ayrıca, \s
/ \S
senin tanımıyor eğer bir hazır alanı kullanabilir veya alan ve sekme, parantez ifadelerinde (olanlar isterseniz yapabilirsiniz, tüm sistemlerde olmayabilir [...]
) veya [[:blank:]]
açık konuşmak gerekirse bu karakter sınıfını (not \s
olduğunu [[:space:]]
muhtemelen umursamadığınız CR, LF veya VT gibi dikey boşluk karakterlerine eşdeğerdir ve bunları içerir).
Birincisi awk
, satırların boş bir karakterle başlamadığını varsayar.
cut -d ' ' -f 1 < your-file
en verimli olurdu.
Ve birincisi perl
,
$ perl -pe 's/^([^ ]+) .*$/\1/' file
aaaaaaaa
bbbbbbbb
ccccccccccccccc
ddddd
GNU grep sayesinde,
$ grep -oP '^[^ ]*' file
bbbbbbbb
ccccccccccccccc
ddddd
<
Burada neden faydalı olduğunu açıklayabilir misiniz ?