script code for end-line
Polytropon
freebsd at edvax.de
Sat Sep 9 01:03:02 UTC 2017
On Fri, 08 Sep 2017 20:15:31 -0400, Ernie Luzar wrote:
>
> I have a file that has blank lines with ^M in position one.
>
> I have this if [ "$end-line" = "^M"]; then
>
>
> Is that the correct way to code that between the quotes?
That will only match the literal string ^M (^ and M).
String evaluation and comparison at this low level
isn't a native skill of sh. There is a way of encoding
characters as octal values, such as \015 for \r, which
equals ^M and 0x0D, but /bin/test (which is [) can only
compare strings.
Here is a terrible workaround (not tested):
if [ `echo ${end-line} | od -x | head -n 1 | awk '{ print $2 }'` = "000d" ]; then
... do something ...
fi
Check if there is already a tool for what you're trying
to accomplish (e. g., tr, sed, recode, iconv). ;-)
--
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...
More information about the freebsd-questions
mailing list