Comparing a string to the "newline" character
Posted: 2021-Jul-25, 1:35 pm
21 Jul 2010 14:55
bluesxman
I need to do a string comparison in a script I'm writing that will check to see if a variable contains only the newline character.
I'd like to do something like this, but it doesn't seem to recognise the "\n"
I have been able to kludge it using
but as grep is not a built-in command, adding it introduces a perceptible lag to the process, which is detrimental to the operation of the script.
Is it possible to do this with solely internal commands?
Last edited by bluesxman (21 Jul 2010 14:56)
cmd | *sh | ruby | chef
----------------------------
#2 20 Jul 2011 05:29
flabdablet
Couple of ways. In bash, you can do
The $'' construction is a bashism, so if you want to do it more portably, simply define a variable that contains a newline and use that where you need one:
That's a little more readable than the brute-force alternative
original thread: oldforum/viewtopic.php?id=1056
bluesxman
I need to do a string comparison in a script I'm writing that will check to see if a variable contains only the newline character.
I'd like to do something like this, but it doesn't seem to recognise the "\n"
Code: Select all
if [ "${string}" = "\n" ] ; then .... ; fi
Code: Select all
if ! echo "${string}" | grep "." ; then .... ; fi
Is it possible to do this with solely internal commands?
Last edited by bluesxman (21 Jul 2010 14:56)
cmd | *sh | ruby | chef
----------------------------
#2 20 Jul 2011 05:29
flabdablet
Couple of ways. In bash, you can do
Code: Select all
if [ "$string" = $'\n' ]
then
echo String is a newline
fi
Code: Select all
newline='
'
if [ "$string" = "$newline" ] ...
Code: Select all
if [ "$string" = '
' ] ...