Eu achei a pergunta e os comentários interessantes, então eu dei uma olhada mais profunda nela. De acordo com os comentários dados, entendo que a questão é mais sobre " Como modificar a saída do comando cat? ", talvez apenas usando opções de comando e, se possível. Apenas uma nota, a questão seria mais fácil de entender se uma entrada de amostra for fornecida e a saída esperada for mostrada.
Assume-se que o seguinte TEST_FILE
é dado:
This is the first (1) paragraph. This is the second (2) sentence. This is the third (3) sentence.\n The fourth (4) sentence of the first (1) paragraph is the second (2) line of the first (1) paragraph.
This is the second (2) paragraph. This is the second (2) sentence of the second (2) paragraph. This is the third (3) sentence of the second (2) paragraph.
This is the third (3) paragraph. This is the second (2) sentence. This is the third (3) sentence of the second (3) paragraph.
This is the fourth (4) paragraph. This is the second (2) sentence of the fourth (4) paragraph. This is the third (3) sentence.
This is the fifth (5) paragraph. This is the second (2) sentence. This is the third (3) sentence.\n The fourth (4) sentence of the fifth (5) paragraph is the second (2) line of the fifth (5) paragraph.
Os parágrafos não são separados por uma única linha em branco (como foi solicitado), mas é bom saber como alguns dos comandos estão funcionando.
Suprimir linhas de saída vazias repetidas :
cat -s TEST_FILE
This is the first (1) paragraph. ...
This is the second (2) paragraph. ...
This is the third (3) paragraph. ...
This is the fourth (4) paragraph. ...
This is the fifth (5) paragraph. ...
Além disso, numere todas as linhas de saída :
cat -s -n TEST_FILE
1 This is the first (1) paragraph. ...
2
3 This is the second (2) paragraph. ...
4
5 This is the third (3) paragraph. ...
6
7 This is the fourth (4) paragraph. ...
8
9 This is the fifth (5) paragraph. ...
E número de linhas de saída não vazias somente :
cat -s -n -b TEST_FILE
1 This is the first (1) paragraph. ...
2 This is the second (2) paragraph. ...
3 This is the third (3) paragraph. ...
4 This is the fourth (4) paragraph. ...
5 This is the fifth (5) paragraph. ...
De acordo com sua "SOLUTION FOUND" parece concordar em usar pipe e um segundo comando para modificar a saída do comando cat
. Pelo menos para o seu terceiro requisito, seria necessário.
Portanto, você pode obter o mesmo resultado com as linhas numéricas nl
(mas somente se as linhas vazias estiverem realmente vazias e não contiverem espaços em branco):
cat TEST_FILE | nl
1 This is the first (1) paragraph. ...
2 This is the second (2) paragraph. ...
3 This is the third (3) paragraph. ...
4 This is the fourth (4) paragraph. ...
5 This is the fifth (5) paragraph. ...
Em seguida, seria possível Remover linhas em branco com grep
também:
cat -s -n -b TEST_FILE | grep .
No caso de linhas com espaços em branco, seria necessário removê-las primeiro:
grep -v -e '^[[:space:]]*$' TEST_FILE | nl
Para a nova linha do Echo no Bash , você pode usar:
echo -e $(cat -s TEST_FILE | tail -1)
echo -e $(cat -s -n -b TEST_FILE | tail -1)
Você também pode exibir determinados números de linha . Mas isso já está deixando o escopo da questão.