0

我有一个包含以下内容的文件。

http://server.in.oracle.com:18080/svn/SVN_DEMO/branches/CI_TEST/AM/SQL/ampks_amdtronl_kernel.sql
http://server.in.oracle.com:18080/svn/SVN_DEMO/branches/CI_TEST/AM/SQL/ampks_amdtronl_utils.sql
http://server.in.oracle.com:18080/svn/SVN_DEMO/branches/CI_TEST/AM/SQL/ampks_fundupload.sql
http://server.in.oracle.com:18080/svn/SVN_DEMO/branches/CI_TEST/AM/SQL/ampks_amdtronl_main.sql
http://server.in.oracle.com:18080/svn/SVN_DEMO/branches/CI_TEST/AM/SQL/ampks_validate.sql

我需要一个批处理脚本来格式化文件,使其如下所示。

ampks_amdtronl_kernel.sql:AM/SQL/ampks_amdtronl_kernel.sql
ampks_amdtronl_utils.sql:AM/SQL/ampks_amdtronl_utils.sql
ampks_fundupload.sql:AM/SQL/ampks_fundupload.sql
ampks_amdtronl_main.sql:AM/SQL/ampks_amdtronl_main.sql
ampks_validate.sql:AM/SQL/ampks_validate.sql

那是文件名:Path/from/AM/till/filname

请指导。

4

5 回答 5

1
for /f %%a in (file.txt) do echo %%~nxa:AM/SQL/%%~nxa >>temp.txt
del file.txt /f /q
ren temp.txt file.txt
于 2012-12-18T09:19:15.077 回答
0

您可以使用 awk 来完成此操作。或者使用简单的文本编辑器将http://server.in.oracle.com:18080/svn/SVN_DEMO/branches/CI_TEST替换为空字符串。然后,我们可以将文件导入 Excel 以将字符串划分为 '/' 上的列最后,使用连接函数(在 Excel 中)来构建您的字符串。

我更喜欢awk,你需要使用split函数

awk '{split($0,a,"/"); 打印 a[10],':',a[6],'/',a[7],'/',a[8],'/',a[9],'/',a[10] }'`

于 2012-12-18T09:04:53.400 回答
0

在您选择的循环中: 1. 将线路一分为二

suffix=${line##.*/AM}   # this deletes everything before /AM so you have the suffix
fname=`basename $line`  # this gives you the name of the file
  1. 随心所欲地重新组装碎片

    echo "${fname}:${sufffix}"

或者,您可以使用一行sed.

于 2012-12-18T08:58:06.827 回答
0

PowerShell 救援:

param ([string] $inFileName, [string] $outFileName)

function Reformat-String
{
    param (
        [string] $str
    )

    $split = $str.Split("/")

    return $split[9] + ":" + $split[7] + "/" + $split[8] + "/" + $split[9]
}

$file = Get-Content $inFileName

foreach($line in $file)
{
    $newLine = Reformat-String $line
    $newLine | Out-File $outFileName -Append
}

另存为“reformat.ps1”。调用为 .\reformat.ps1 SourceFilePath DestinationFilePath

于 2012-12-18T09:12:54.543 回答
0
@echo off
For /F "tokens=7-9 delims=/" %%a in (thefile.txt) do echo %%c:%%a/%%b/%%c
于 2012-12-19T15:26:05.907 回答