"Record Manipulation with AWK1 post - 1 author - Last post: yesterday
Record Manipulation with AWK. ... I have tried with awk but to no avail. My code: awk ' { FS = "|" matchcnt = 0 if ( $1 != prev ) ...
www.computerhope.com/forum/index.php?topic=97061.0
"C:\batch>type awkbatfinal.bat
@echo off
setLocal EnableDelayedExpansion
set result=
echo. > outinfile.txt
for /f "tokens=1-3 delims=|" %%a in (awkinfile.txt) do (
set var1=301
set var2=%%a
echo var1=!var1!
if !var2!==!var1! (
echo var2 is the same var1
set line=%%b%%c
set result=!result!!line!
echo line=!line!
echo result=!result!
) else (
echo var2 = !var2!
goto end
)
)
:end
echo Input
for /f "delims=" %%a in (awkinfile.txt) do (
echo %%a
)
echo !var1!^|!result! >> outinfile.txt
findstr "303" awkinfile.txt >> outinfile.txt
findstr "304" awkinfile.txt >> outinfile.txt
findstr "305" awkinfile.txt >> outinfile.txt
echo Output
type outinfile.txt
@echo off
call awkbat6.bat
call awkbat8.bat
echo END
OUTPUT:C:\batch> awkbatfinal.bat
var1=301
var2 is the same var1
line=AF_ACC_BDL774;
result=AF_ACC_BDL774;
var1=301
var2 is the same var1
line=AF_WMG_BDL6660;
result=AF_ACC_BDL774;AF_WMG_BDL6660;
var1=301
var2 is the same var1
line=AF_REP_BDL4735;
result=AF_ACC_BDL774;AF_WMG_BDL6660;AF_REP_BDL4735;
var1=301
var2 = 303
Input
301|AF_ACC_BDL|774;
301|AF_WMG_BDL|6660;
301|AF_REP_BDL|4735;
303|AF_ACC_BDL|1360;
304|AF_ACC_BDL|5092;
305|AF_ACC_BDL|32384;
306|AF_ACC_BDL|80859;
306|AF_REP_BDL|80875;
308|AF_ACC_BDL|1418;
308|AF_WLH_BDL|78273;
308|AF_WSL_BDL|9990;
308|AF_WFL_BDL|9998;
Output
301|AF_ACC_BDL774;AF_WMG_BDL6660;AF_REP_BDL4735;
303|AF_ACC_BDL|1360;
304|AF_ACC_BDL|5092;
305|AF_ACC_BDL|32384;
var1=306
var2 is the same var1
line=AF_ACC_BDL80859;
result=AF_ACC_BDL80859;
var1=306
var2 is the same var1
line=AF_REP_BDL80875;
result=AF_ACC_BDL80859;AF_REP_BDL80875;
var1=306
var2 = 307
Input
301|AF_ACC_BDL|774;
301|AF_WMG_BDL|6660;
301|AF_REP_BDL|4735;
303|AF_ACC_BDL|1360;
304|AF_ACC_BDL|5092;
305|AF_ACC_BDL|32384;
306|AF_ACC_BDL|80859;
306|AF_REP_BDL|80875;
308|AF_ACC_BDL|1418;
308|AF_WLH_BDL|78273;
308|AF_WSL_BDL|9990;
308|AF_WFL_BDL|9998;
Output
301|AF_ACC_BDL774;AF_WMG_BDL6660;AF_REP_BDL4735;
303|AF_ACC_BDL|1360;
304|AF_ACC_BDL|5092;
305|AF_ACC_BDL|32384;
306|AF_ACC_BDL80859;AF_REP_BDL80875;
line=AF_ACC_BDL1418;
result=AF_ACC_BDL1418;
line=AF_WLH_BDL78273;
result=AF_ACC_BDL1418;AF_WLH_BDL78273;
line=AF_WSL_BDL9990;
result=AF_ACC_BDL1418;AF_WLH_BDL78273;AF_WSL_BDL9990;
line=AF_WFL_BDL9998;
result=AF_ACC_BDL1418;AF_WLH_BDL78273;AF_WSL_BDL9990;AF_WFL_BDL9998;
var2 = 309
Input
301|AF_ACC_BDL|774;
301|AF_WMG_BDL|6660;
301|AF_REP_BDL|4735;
303|AF_ACC_BDL|1360;
304|AF_ACC_BDL|5092;
305|AF_ACC_BDL|32384;
306|AF_ACC_BDL|80859;
306|AF_REP_BDL|80875;
308|AF_ACC_BDL|1418;
308|AF_WLH_BDL|78273;
308|AF_WSL_BDL|9990;
308|AF_WFL_BDL|9998;
Output
301|AF_ACC_BDL774;AF_WMG_BDL6660;AF_REP_BDL4735;
303|AF_ACC_BDL|1360;
304|AF_ACC_BDL|5092;
305|AF_ACC_BDL|32384;
306|AF_ACC_BDL80859;AF_REP_BDL80875;
308|AF_ACC_BDL1418;AF_WLH_BDL78273;AF_WSL_BDL9990;AF_WFL_BDL9998;
END
C:\batch>