I have the following input:
Value1|Value2|Value3|Value4@@ Value5|Value6|Value7|Value8@@ Value9|etc...
In my bash script I would like to replace the @@
with a newline. I have tried various things with sed but I'm not having any luck:
line=$(echo ${x} | sed -e $'s/@@ /\\\n/g')
Ultimately I need to parse this whole input into rows and values. Maybe I am going about it wrong. I was planning to replace the @@
with newlines and then loop through the input with setting IFS='|'
to split up the values. If there is a better way please tell me, I am still a beginner with shell scripting.
Using `sed` to replace \n with a comma By default, every line ends with \n when creating a file. The `sed` command can easily split on \n and replace the newline with any character. Another delimiter can be used in place of \n, but only when GNU sed is used.
Printing Newline in Bash The most common way is to use the echo command. However, the printf command also works fine. Using the backslash character for newline “\n” is the conventional way. However, it's also possible to denote newlines using the “$” sign.
The 'sed' command is used to replace any string in a file using a bash script. This command can be used in various ways to replace the content of a file in bash. The 'awk' command can also be used to replace the string in a file.
This will work
sed 's/@@ /\n/g' filename
replaces @@
with new line
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