My file a contains the text, bcd\\\\.With bash, i read the file and print characters from 4th to 8th position as,tmp=$(cat a)echo ${tmp:3:4}It prints, \\\\All happy. Now i use python's array slicing to print characters from 4th to 8th position as,>>> f = open('a')>>> v=f.read()>>> v[3:7]It prints,'\\\\\\\\'Why does bash and python behave differently when there are backslashes?
python Vs bash string slicing
python;quoting;string
It is a matter of how python displays strings.  Observe:>>> f = open('a')>>> v=f.read()>>> v[3:7]'\\\\\\\\'>>> print v[3:7]\\\\When displaying v[3:7], the backslashes are escaped.  When printing, print v[3:7], they are not escaped. Other examplesThe line in your file should end with a newline character.  In that case, observe:>>> v[-1]'\n'>>> print v[-1]>>> The newline character is displayed as a backslash-n.  It prints as a newline.The results for tab are similar:>>> s='a\tb'>>> s'a\tb'>>> print sa       b