I'm trying to split sentences in a file into separate lines using a shell script.
Now I would like to split the strings by !, ? or . . The output should be like this :
The file that I want to read from my_text.txt and contains
you want to learn shell script? First, you want to learn Linux command! then. you can learn shell script.
Now I would like to split the strings by " ! " or "? " or "." The output should be like this :
you want to learn shell script First, you want to learn Linux command then you can learn shell script
I used this script :
while read p
do
echo $p | tr "? ! ." "\n "
done < my_text.txt
But the output is:
you want to learn shell script
First, you want to learn Linux command then you can learn shell script
Can somebody help?
During post-processing, if one sentence ends with a question or exclamation mark followed by a double quote, and the other sentence begins with a lower case letter, then these sentences are joined together.
How would you split it into individual sentences, each forming its own mini paragraph? Obviously, if we are talking about a single paragraph with a few sentences, the answer is no brainer: you do it manually by placing your cursor at the end of each sentence and pressing the ENTER key twice.
A split subject is a construction in which the subject of a sentence appears to consist of two parts that do not appear next to each other.
This could be done in a single awk
using its global substitution option as follows, written and tested with shown samples only in GNU awk
. Simply globally substituting ?
,!
,.
with new line(by default ORS
(output record separator) value as new line).
awk '{gsub(/\?|!|\./,ORS)} 1' Input_file
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With