我有文本文件,我想用“”(NULL)替换NULL字符串。作为test.txt的文本文件的内容是:
abc,1234,qwe,NULL
234,NULL,wer,jkl
jkl,678,987,NULL
我期待test.txt中的输出如下:
abc,1234,qwe,
234,,wer,jkl
jkl,678,987,
我是新手,请提前帮助我谢谢
答案 0 :(得分:0)
在Unix / Linux中:
cat <original file> | sed 's/NULL//' > <new file>
答案 1 :(得分:0)
尝试使用此代码:
@echo off
REM -- Prepare the Command Processor --
SETLOCAL ENABLEEXTENSIONS
SETLOCAL DISABLEDELAYEDEXPANSION
::BatchSubstitude - parses a File line by line and replaces a substring"
::syntax: BatchSubstitude.bat OldStr NewStr File
:: OldStr [in] - string to be replaced
:: NewStr [in] - string to replace with
:: File [in] - file to be parsed
:$changed 20100115
:$source http://www.dostips.com
if "%~1"=="" findstr "^::" "%~f0"&GOTO:EOF
for /f "tokens=1,* delims=]" %%A in ('"type %3|find /n /v """') do (
set "line=%%B"
if defined line (
call set "line=echo.%%line:%~1=%~2%%"
for /f "delims=" %%X in ('"echo."%%line%%""') do %%~X
) ELSE echo.
)
上述代码取自here。如果要保存输出,请保存此批处理文件并运行以下命令。
C:\> <name of the above batch file> "NULL" "" originalFile.txt > test.txt
希望它有所帮助。
<小时/> 的更新强>
以下是执行全局搜索和替换功能的另一种方法。
@echo off
setLocal enableDelayedExpansion
set filename=input.txt
set originalText=NULL
set "replacedText="
for /f "tokens=*" %%a in ('type %filename%') do (
set "line=%%a"
if defined line (
call set "line=%%line:%originalText%=%replacedText%%%"
echo !line!>> test.txt
) else (
echo.
)
)
call set "line=%%line:%originalText%=%replacedText%%%"
将负责执行搜索和替换文本文件中的NULL
字词。然后程序会将结果存储到test.txt
。
P.S。请注意,需要call set
,因为它将扩展在同一行传递的变量。