我想在我的代码中找到超过一定长度的行。我的代码在多个文件中。有什么好方法可以做到这一点?
我想知道文件和行号;内容将是首选,但不是必需的。练习的目的是弄清楚如何断线(可能是手动)。
Sté*_*las 14
与grep:
grep -En '.{12}' file
Run Code Online (Sandbox Code Playgroud)
对于至少 12 个字符长的行。
有几个文件:
find . -type f -exec grep -En '.{12}' {} +
Run Code Online (Sandbox Code Playgroud)
一些grep实现,如 GNU grep,可以自己进行文件查找。
grep -rEn '.{12}' .
Run Code Online (Sandbox Code Playgroud)
但要注意符号链接和其他非常规文件。
Ram*_*esh 12
AWK解决方案
awk '{
if (length($0) > 5)
print $0;'} yourfile
Run Code Online (Sandbox Code Playgroud)
或者,更简洁地说:
awk 'length > 5' file
Run Code Online (Sandbox Code Playgroud)
Bash解决方案
#!/bin/bash
count=0
while read; do
((++count))
len=${#REPLY}
if ((len > 80)); then
echo "Line $count is $len characters."
fi
done
Run Code Online (Sandbox Code Playgroud)
所以,例如,./whatever.sh < input.file。这不包括从 中减去 1 的换行符$len;如果这是不可取的,或者您的输入使用 CRLF 结尾,您应该相应地进行调整。