car*_*uen 9 unix shell scripting
标题总结了它.我在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
Run Code Online (Sandbox Code Playgroud)
任何帮助都会很棒.
Joh*_*web 12
差不多了!这将为您提供一种grep
风格的输出,在Vim等编辑器中非常有用,可以导出输出:
awk 'length > 80 {print FILENAME "(" FNR "): " $0}' *.cpp
Run Code Online (Sandbox Code Playgroud)
或者提供您要求的格式:
awk 'length > 80 {print FILENAME " line " FNR "\n\t" $0}' *.cpp
Run Code Online (Sandbox Code Playgroud)
FILENAME
和FNR
(比如NR
,但对于那个特定的文件)是特殊的变量awk
.
或者你可以使用grep
它自己,当然:
grep -n '^.\{80\}' *.cpp
Run Code Online (Sandbox Code Playgroud)