我的问题是使用skip=3
解决了关于行的列。这忽略了前3行。那么忽略下面例子中第一个end
字之后的所有行呢。
1121.19, 1638.66, 16.6098, -4.7339, -4.7339, 2.5, hash:0, -1, -1, -1, -1, 1888, 0, 0
971.597, 1815.17, 21.085, 1.39876E-006, 8, 4, hash:0, -1, -1, -1, -1, 1905, 0, 0
971.597, 1825.45, 21.085, 1.39876E-006, 8, 4, hash:0, -1, -1, -1, -1, 1905, 0, 0
end
tcyc
end
mlop
end
lodm
end
slow
end
blok
end
所以我想忽略我的基本格式中没有的所有行:
971.597, 1825.45, 21.085, 1.39876E-006, 8, 4, hash:0, -1, -1, -1, -1, 1905, 0, 0
需要使用哪些代码来忽略从第一个end
字到文件末尾的所有行,这些行将忽略示例输入中的以下行:
end
tcyc
end
mlop
end
lodm
end
slow
end
blok
end
这是我到目前为止的代码:
if exist 12.txt del 12.txt
FOR /F "skip=3 tokens=1-8* delims=," %%A IN (C:\Users\Sherlock\Documents\3DReaperDX\Frames\1.txt) do >>12.txt echo model:%%H tx:%%A ty:%%C tz:%%B rx:%%D ry:%%F rz:%%E
答案 0 :(得分:0)
第一个批处理文件检查 echo 行中使用的所有循环变量是否都有非空字符串,这导致忽略除前3行之外的所有行。
library(dplyr)
df1 %>%
mutate(X = sapply(strsplit(as.character(B), ' '),
function(x) with(df2, max(X[Y %in% x])))) %>%
left_join(., df2)
第二个批处理文件处理第一行的行,其中包含不区分大小写的字符串#Joining by: "X"
# A B X Y
#1 0.87 I have a beard 127 have
#2 0.11 I slept for two hours -Inf <NA>
#3 0.44 I have had two courses 127 have
#4 0.45 this is not true 344 true
。
@echo off
setlocal EnableExtensions
set "OutputFile=12.txt"
del "%OutputFile%" 2>nul
for /F "usebackq tokens=1-8* delims=," %%A in ("C:\Users\Sherlock\Documents\3DReaperDX\Frames\1.txt") do (
if "%%A" NEQ "" (
if "%%B" NEQ "" (
if "%%C" NEQ "" (
if "%%D" NEQ "" (
if "%%E" NEQ "" (
if "%%F" NEQ "" (
if "%%H" NEQ "" (
>>"%OutputFile%" echo model:%%H tx:%%A ty:%%C tz:%%B rx:%%D ry:%%F rz:%%E
)
)
)
)
)
)
)
)
endlocal
顺便说一下:如果用户帐户名为end
,则@echo off
setlocal EnableExtensions
set "OutputFile=12.txt"
del "%OutputFile%" 2>nul
for /F "usebackq tokens=1-8* delims=," %%A in ("C:\Users\Sherlock\Documents\3DReaperDX\Frames\1.txt") do (
if /I "%%A" EQU "end" goto ContinueAfterLoop
>>"%OutputFile%" echo model:%%H tx:%%A ty:%%C tz:%%B rx:%%D ry:%%F rz:%%E
)
:ContinueAfterLoop
endlocal
与%USERPROFILE%
相同。