считайте содержание файла в для/цикл с условием продолжения, удалив символы ESC

Я пытаюсь считать содержание файла, которое имеет разделители строки как 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
3
задан 7 August 2018 в 14:22

2 ответа

Я не знаю способ препятствовать тому, чтобы последовательности символов были считаны вообще, но можно использовать 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

4
ответ дан 1 December 2019 в 15:21
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-последовательность для символа табуляции) с пустыми строками.

2
ответ дан 1 December 2019 в 15:21

Другие вопросы по тегам:

Похожие вопросы: