我需要解析一个文件并使用正则表达式作为分隔符的一部分从中获取某些字段。我以为我可以使用 perl 来做到这一点(?)。问题是我无法让它正常工作。这是一个我认为可以让我打印由一个空格分隔的字段(在本例中为一个或多个空格)的单行:
bash_prompt> perl -anF'/ +/' -e 'print "$F[0], $F[-1]\n"' build_outputfile
输出文件来自生成文件。
在这里,我想打印出第一个令牌和最后一个令牌。因此,在我的情况下,使用了哪个编译器以及编译了哪个文件。也许有更好的方法可以做到这一点,但现在我对为什么我的 perl one 班轮不起作用感到困扰。
无论如何,正则表达式 '/ +/ 似乎不起作用。我得到了一些意想不到的输出。也许 F 实际上并不想要正则表达式?当我用包含一个空格的“/ /”替换 F 的参数时,我仍然没有得到预期的输出。
任何人都可以帮忙吗?谢谢。
这里有一些测试代码供您尝试。将其保存在文件中:
g++ -c -g -Wall -I/codedir/src/CanComm/include -I/home/codemonkey/workspace/thirdparty/Boost -Wno-deprecated SCMain.cpp
g++ -c -g -Wall -I./object/include -I./wrapper/include -I./Properties/include -I./Messaging/include -I/codedir/src/Logging/sclog/include ./object/SCObject.cpp ./object/RandNumGenerator.cpp ./object/ScannerConstraints.cpp ./object/ThreadSync.cpp ./object/SCData.cpp ./object/AirScanData.cpp ./object/ClusterData.cpp ./object/WarmupData.cpp ./object/SCCommand.cpp ./object/ScanCommands.cpp ./object/RCCommands.cpp ./object/ReconData.cpp ./object/UICommTool.cpp ./object/UIMsg.cpp ./object/UI2SCConversion.cpp ./object/RCMsg.cpp ./object/RCMessageInfo.cpp ./object/Utils.cpp ./object/ZBackupTable.cpp ./object/ZBackupFactory.cpp
g++ -c -g -Wall -I./Properties/include -I/codedir/src/Logging/sclog/include -I./object/include -I/home/codemonkey/workspace/thirdparty/Boost ./Properties/PropertyMap.cpp