Я пытаюсь считать содержание файла, которое имеет разделители строки как CRLF
но я думаю, что это не проблема, и также имейте символ \n
в конце каждой строки и иногда a \t
между словами, там способ, которым я могу считать его содержание, одна строка за один раз, но игнорирование каждого символа ESC? Я не хочу читать \n
и \t
, ай хочу проигнорировать их.
Мой файл (arq.txt
):
aaaaa\n
bbbbb\n
ccccc\n
ee\teee\n
ddddd\n
fffff\n
gg\tggg\n
hhhhh\n
Что я попробовал:
$ while IFs="" ; read line ; do echo $line ; done < arq.txt
aaaaan
bbbbbn
cccccn
eeteeen
dddddn
fffffn
ggtgggn
hhhhhn
и:
$ for line in `cat arq.txt` ; do echo $line ; done
aaaaa\n
bbbbb\n
ccccc\n
ee\teee\n
ddddd\n
fffff\n
gg\tggg\n
hhhhh\n
Я не знаю способ препятствовать тому, чтобы последовательности символов были считаны вообще, но можно использовать read -r
предотвратить их рассматриваемый как Escape ANSI и затем удалить литерал \t
и \n
от результата:
$ while IFS= read -r line; do echo "${line//\\[tn]/}"; done < arq.txt
aaaaa
bbbbb
ccccc
eeeee
ddddd
fffff
ggggg
hhhhh
Обратите внимание, что Вы могли достигнуть того же с внешними regex инструментами такой как sed 's/\\[tn]//g' arq.txt
with open('arq.txt') as f:
for line in f.readlines():
print (line.rstrip().replace('\t',''))
Вставка, что в текстовый файл и сохраняют как arq.py
в том же каталоге как Ваш файл arq.txt.
Выполните его с python arq.py
Объяснение: Печать каждая строка в файле. rstrip()
удаляет символы конца строки. replace
символы табуляции замен ('\t
'escape-последовательность для символа табуляции) с пустыми строками.