标题总结了一下。我在Unix,korn shell工作。我正在尝试打印当前文件夹中每个文件超过80个字符的每行的文件名和行号。
我可以使用“ awk'length> 80'* .cpp ”来提供超过80个字符的所有行,但我似乎无法提取行号或文件名。我也尝试使用cat,因为它允许使用行号。
想法是获得与此类似的输出:
test.cpp line 36
std::cout << ... line that is over 80 characters
test2.cpp line 40
Another line that is over 80 characters
任何帮助都会很棒。
答案 0 :(得分:12)
几乎就在那里!这将为您提供grep
样式输出,在Vim等编辑器中非常有用,可以导出输出:
awk 'length > 80 {print FILENAME "(" FNR "): " $0}' *.cpp
或者提供您要求的格式:
awk 'length > 80 {print FILENAME " line " FNR "\n\t" $0}' *.cpp
FILENAME
和FNR
(如NR
,但针对该特定文件)是awk
中的特殊变量。
或者您当然可以使用grep
:
grep -n '^.\{80\}' *.cpp
答案 1 :(得分:0)
awk 'length > 80 { print FILENAME ":" NR ": " $0 }' *.cpp