adsense728x90


awk 대신 windows FOR batch로 csv 파일 수정하기 Computers


각 행에 대해서 뭔가 작업하려면, FOR를 쓰기

아, 근데, windows batch 열라 구려

csv 파일 각 행, 각 열을 다른 파일로 저장하려고 했는데, 3시간 걸렸네 -0-

우선, encoding 안 맞고, carriage return 잘 안돼있는 것 때문에 처음에 시간을 소비했다.
#iconv -c -f euc-kr -t utf-8 test.txt > test-utf8.txt

한글 포함된 부분 없애 버리고, mac os x에서 textwangler로 



for /F "tokens=*" %%A in (myfile.txt) do [process] %%A

for /F "eol=; tokens=2,3* delims=," %i in (myfile.txt) do @echo %i %j %k

batch file로 쓸 땐, %를 변수에 2개 붙이고,
command로 바로 실행할 땐, %를 1개 붙이나 보다.

각 행 숫자로 파일 이름을 정하려고 했는데, 변수 값 수정이 안돼...

setlocal ENABLEDELAYEDEXPANSION

set COUNT=0

for %%var in (1 2 3 4) do (

  set /A COUNT=!COUNT! + 1

  echo !COUNT!

)



ENABLEDELAYEDEXPANSION
이 필요하고, 변수 값을 불러올 땐, !!로 둘러 싸기

아주 싫다 T_T
왜 이렇게 일반적이지가 않아..

각 행을 다른 파일로 저장하기

SETLOCAL ENABLEDELAYEDEXPANSION
SET line=0
FOR /F "delims=, tokens=*" %%a IN (index24.crlf.csv) DO (
 SET /A line=!line! + 1
 ECHO %%a > !line!.txt
)

head 로 하면 더 좋을텐데, 잘 안되는 것 같네.


첫 번째 열만 c1.txt 파일로 저장하기

SETLOCAL ENABLEDELAYEDEXPANSION
SET line=0
FOR /F "delims=, tokens=1*" %%i IN (index24.crlf.csv) DO (
 SET /A line=!line! + 1
 ECHO %%i >> c1.txt
)


그 외 tips

echo hello & echo.world


dir > a.txt | type a.txt





덧글

  • ... 2014/06/16 01:13 # 삭제 답글

    저는 그냥 win-bash 를 씁니다.
  • 언제나19 2014/06/18 17:09 #

    전 windows를 쓴다면, cygwin을 쓰긴 하는데, windows만 쓰는 친구 것을 해주다 보니까 기본 있는 것만으로 해결하려고 했었어요 T_T 괜한 것을 시작했었다는 느낌이 나중에서야 드네요!
댓글 입력 영역