По крайней мере, в системах я использовал:
more
выходы автоматически, когда Вы достигаете конца файлаless
требует, чтобы Вы вышли явно.sed
является, вероятно, самым легким и быстрее, чем awk или жемчуг при этом обстоятельстве:
sed 's/^\([^;][^;]*\);.*$/\1/' some_file_name
другая опция состоит в том, чтобы использовать cut
команда
cat a.file | cut -d';' -f1
Я обычно использую awk
для вещей как это:
cat a.file | awk -F=";" '{ print $1 }'
Это будет проводить каждую строку файла и печатать первую группу перед разделителем -F
Вот способ сделать это с помощью GNU grep
:
grep -Po "^[^;]+(?=;?)" filename
grep -Eo '^[^;]+;' filename
почти получает его, это просто печатает один символ слишком многие. grep -Eo '^[^;]+' filename
почти получает его также, но это также распечатает полные (непустые) строки, которые не имеют никого ;
.
– dubiousjim
20.04.2012, 00:12
sed 's/;.*//'
– Gilles 'SO- stop being evil' 23.08.2010, 23:43