Мой файл,
PSS-A (Primary A)
PSS-B (Primary B)
PSS-C (Primary C)
PSS-D (Primary D)
PSS-E (Primary E)
PSS-F (Primary F)
PSS-G (Primary G)
PSS-H (Primary H)
PSS-I (Primary I)
SPARE (SPARE)
Выходной файл,
1> PSS-A (Primary A)
2> PSS-B (Primary B)
3> PSS-C (Primary C)
4> PSS-D (Primary D)
5> PSS-E (Primary E)
6> PSS-F (Primary F)
7> PSS-G (Primary G)
8> PSS-H (Primary H)
9> PSS-I (Primary I)
10> SPARE (SPARE)
shell-script
shell
text-processing
awk
sed
pmaipmui
источник
источник
cat
команде выводятся номера строк ... но не совсем то, что я хотел .... ноawk '{print NR "> " $s}' inputfile > outputfile
выдает желаемый результат .... :-) @amit kumarcat -n
это не портативно. Только-u
опция указана в POSIXcat
.Правильный инструмент для этой работы
nl
:Вы можете настроить
w
опцию idth в соответствии с общим количеством строк в файле (если вы хотите, чтобы числа были правильно выровнены).Вывод:
источник
nl
специально обрабатывает строки, содержащие последовательность из 1, 2 или 3\:
строк. Используйте,-d $'\n'
чтобы избежать этого. Также по умолчанию он не нумерует пустые строки. Используйте-ba
для нумерации каждой строки.$'...'
синтаксис зависит от bash.seq
не сделал этого. Слава Богу заnl
$'...'
из ksh93 и также поддерживаетсяzsh
,mksh
по крайней мере, busybox sh, sh FreeBSD и bash. Это еще не стандарт, но планируется включить в следующую основную версию POSIX.$'...'
переносимости ( цитированиея сделал по методу ниже
команда:
cat -n filename |sed -r "s/^\s+//g"| sed "s/^[0-9]*/&\> /g"
вывод
источник