我看到一堆有“.sha256”文件的 FOSS 项目。它们看起来像这样:
dsdfdfdsffdfsdfdsfdsfdsfdsfdsfds23r2ewrefdefdsfdsgfdsgffgfkgdfgg *meow.exe
Asdfdfdsffdfsdfdsfdsfdsfdsfdsfds23r2ewrefdefdsfdsgfdsgffgfkgdfg3 cool_stuff.exe
dsdfdfdsfDdfsdfdsfdsfdsfdsfdsfds23r2ewrefdefdsfdsgfdsgffg3kgdfgg even_more_stuff.exe
Run Code Online (Sandbox Code Playgroud)
我目前通过以下方式得到这些:
#^([A-Za-z0-9]{64})\s+(\S+)$#um
Run Code Online (Sandbox Code Playgroud)
这将匹配dsdfdfdsffdfsdfdsfdsfdsfdsfdsfds23r2ewrefdefdsfdsgfdsgffgfkgdfgg和*meow.exe等。神秘地以星号开头的文件名(我无数次试图查找它,但不知道这意味着什么)被剥夺了它们的开头*。
还有比这更重要的事情吗?如果文件名中包含空格而不是下划线,会发生什么情况?然后我的正则表达式崩溃了。可以引用它们吗?如果是,是使用 Linux(单引号)还是 Windows 风格(双引号)引用?
这种看似简单的文件格式实际上有无数与之相关的问题,但我没有在任何地方看到它的定义。到目前为止,我也没有遇到过使用空格或任何类型的引号的文件名。但他们确实使用星号,显然它也可以出现在文件名的末尾......
应该如何解析这种疯狂,以免有一天崩溃?
我正在编写与运行busybox Linux 版本的嵌入式设备交互的软件。基本上,我只是向设备发送命令并解析命令的输出。这些命令可以直接在 linux shell 上执行,也可以在设备上运行的内部 CLI 应用程序的命令行上执行。
一切正常,只是输出带有终端控制转义序列。在诸如 teraterm 或 putty 之类的终端应用程序上,这些转义序列可以做一些有用的事情,例如颜色错误红色和其他令人愉快的用户界面的不错功能。
问题是我必须以编程方式解析命令的输出并考虑输出中的“(esc)[2k”之类的东西。
例如,一个典型的发送/接收交互,我发送一个命令,“my-cmd”会像这样......
[send] my-cmd
[receive] my-cmd <esc>[2Kprompt> my-cmd
output of the command
prompt>
Run Code Online (Sandbox Code Playgroud)
我真正想做的是关闭这些转义序列。这是可以在会话开始时在命令外壳上完成的事情吗?或者除了过滤输出之外别无他法?
我有一个分析日志文件的项目。有人以其无穷的智慧将日志文件命名为 MM-DD-YYYY-HH-MM.LOG(例如,2012 年 10 月 31 日下午 6:00 的 10-31-2012-18-00.LOG)。
我的首要任务是通过复制名为 YYYYMMDD_HHMM.LOG(例如,上面示例中的 20121031_1800.LOG)的现有日志来创建更合理的工作,并且必须使用 powershell 来完成此任务。
所以这就是我到目前为止的位置:
$orgPath = "d:\testOrg\"
$newPath = "d:\testNew\"
$delim = "-" ;
function copyFile {
"$($orgPath) copying Files to $($newPath)"
Get-ChildItem $orgPath | `
foreach {
$nameArray = $_.Split($delim)
$newName = Write-Output $nameArray[2]+$nameArray[0]+$nameArray[1]+"_"+$nameArray[3]+$nameArray[4]
$targetFile = $newPath + $_.FullName.SubString($orgPath.Length)
New-Item -ItemType File -Path $targetFile -Force
Copy-Item $_.FullName -destination $targetFile
write-host $_.DirectoryName $_.newName
"File Copied"
}
Run Code Online (Sandbox Code Playgroud)
我不断收到错误消息
+ CategoryInfo : InvalidOperation: (Split:String) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound …Run Code Online (Sandbox Code Playgroud) parser ×3
batch-rename ×1
command-line ×1
hashing ×1
linux ×1
parsing ×1
regex ×1
sha-2 ×1
terminal ×1