标签: parser

“.sha256”文件格式是否在某处正式定义?应该如何解析呢?

我看到一堆有“.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 风格(双引号)引用?

这种看似简单的文件格式实际上有无数与之相关的问题,但我没有在任何地方看到它的定义。到目前为止,我也没有遇到过使用空格或任何类型的引号的文件名。但他们确实使用星号,显然它也可以出现在文件名的末尾......

应该如何解析这种疯狂,以免有一天崩溃?

regex parsing hashing parser sha-2

6
推荐指数
1
解决办法
7992
查看次数

如何在 Linux 中禁用终端控制转义序列?

我正在编写与运行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)

我真正想做的是关闭这些转义序列。这是可以在会话开始时在命令外壳上完成的事情吗?或者除了过滤输出之外别无他法?

linux terminal command-line parser

5
推荐指数
1
解决办法
5418
查看次数

如何使用 PowerShell 解析文件名并重命名它们?

我有一个分析日志文件的项目。有人以其无穷的智慧将日志文件命名为 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)

powershell-2.0 batch-rename parser

5
推荐指数
1
解决办法
2万
查看次数