我正在尝试读取文件的内容,该文件的行分隔符为,CRLF
但我认为这不是问题,并且\n
每行末尾都有一个字符,有时\t
单词之间有一个字符,有没有办法可以一次读取其内容,但忽略每个转义字符?我不想阅读和\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
答案1
我不知道有什么方法可以完全阻止读取字符序列,但您可以使用它read -r
来阻止它们被视为 ANSI 转义,然后从结果中删除文字\t
和:\n
$ while IFS= read -r line; do echo "${line//\\[tn]/}"; done < arq.txt
aaaaa
bbbbb
ccccc
eeeee
ddddd
fffff
ggggg
hhhhh
请注意,您可以使用外部正则表达式工具实现相同的功能,例如sed 's/\\[tn]//g' arq.txt
答案2
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
' 是制表符的转义序列)。