我需要一个正则表达式来匹配我们只有1个 \ n 不可打印的ASCII字符的行,所以:
[[$ line = ~REGEX]]
请帮忙。该字符的ASCII代码为 (0x0A)
,我知道它应该类似于:^(0x0A)$
但我无法使其工作。
修改
我的代码是:
while IFS= read -r line; do
[[ $line =~ REGEX ]] && printf "SUCCESS"
done < file
编辑 - 这是文件,有更多的代码,但我把它剪掉了
答案 0 :(得分:2)
您的f=open(location+'abcd.txt')
data={}
i=0
for line in f:
data[i]=line
i+=1
for i in range(0,len(data)):
a=data[i]
start=0
end=len(a)
for j in range(0,len(a)):
if a[j]=='[':
start=j
elif a[j]==']':
end=j
print a[end+1:]
循环正在读取您的文件,直到找到换行符,然后将其到目前为止读取的内容分配给while read
,丢弃换行符。
因此,您应该能够检测到这样的空行:
line
如果您确实想使用正则表达式,可以按照评论中其他人的建议使用while IFS= read -r line; do
[[ -z $line ]] && printf "SUCCESS\n"
done < file
。
如果您的目标是在线条与图案匹配时生成某种输出,则应使用专为此目的设计的工具,例如awk:
^$
由于您似乎遇到了Windows样式的换行问题,因此可以使用awk '/^$/ { print "SUCCESS" }' file
或其他工具将其转换为UNIX样式换行符。