확장자 추출.
root@MHKANG:~# echo -e "a.txt\nb.php"|grep -oP "[^.]+$"
txt
php
윈도우는 파이프를 이용한 리다이렉션이 안 된다.
D:\>echo a.txt & echo.b.php
a.txt
b.php
D:\>echo a.txt & echo.b.php | findstr php
a.txt
b.php
D:\>echo a.txt > test.txt & echo.b.php >> test.txt
D:\>type test.txta.txtb.php
D:\>findstr php test.txtb.php
D:\>findstr /r "[^.]+$" test.txt
D:\>findstr /r "[^.]*$" test.txta.txtb.php
정규표현식 제한도 좀 있고.
D:\>findstr /?파일에서 문자열을 찾습니다.
FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:파일][/C:문자열] [/G:파일] [/D:디렉터리 목록] [/A:색 속성] [/OFF[LINE]] 문자열 [[드라이브:][경로]파일이름[ ...]]
/B 패턴이 행의 첫 부분에 있는지를 비교합니다. /E 패턴이 행의 끝부분에 있는지를 비교합니다. /L 찾는 문자열을 글자 그대로 사용합니다. /R 찾는 문자열을 정규식으로 사용합니다. /S 현재 디렉터리와 모든 하위 디렉터리에서 일치하는 파일을 찾습니다. /I 찾을 때 대/소문자를 구별하지 않습니다. /X 정확히 일치하는 줄만 보여줍니다. /V 일치하는 텍스트가 없는 줄만 보여줍니다. /N 일치하는 각 줄 앞에 줄 번호를 보여줍니다. /M 파일에 일치하는 텍스트가 있으면 파일 이름만 보여줍니다. /O 일치하는 각 줄 앞에 문자 오프셋을 보여줍니다. /P 인쇄할 수 없는 텍스트가 포함된 파일은 건너뜁니다. /OFF[LINE] 오프라인 속성 세트 파일을 건너뛰지 않습니다. /A:속성 색 속성을 두 자리 16진수로 지정합니다. "color /?"를 참조하십시오. /F:파일 지정된 파일에서 파일 목록을 읽습니다('/'는 콘솔에 해당됩니다). /C:문자열 지정된 텍스트를 글자 그대로 찾는 문자열로 사용합니다. /G:파일 지정된 파일로부터 찾는 텍스트를 받습니다('/'는 콘솔에 해당됩니다). /D:디렉터리 디렉터리 목록을 구분하는 세미콜론(;)를 찾습니다. 문자열 찾을 텍스트. [드라이브:][경로]파일이름 찾을 파일을 지정합니다.
/C 옵션을 사용한 경우가 아니면, 찾는 문자열을 여러 개 지정할 때공백으로 분리하십시오. 예를 들면, 'FINDSTR "hello there" x.y' 명령을입력하면 파일 x.y에서 "hello"나 "there"을 찾습니다.반면에 'FINDSTR /C:"hello there" x.y' 명령을 입력하면 파일 x.y에서"hello there"을 찾습니다.
정규식에 대한 참고 사항: . 와일드카드: 모든 문자 * 반복: 문자나 클래스에 대하여 0번 이상 반복 ^ 행 위치: 행의 앞부분 $ 행 위치: 행의 끝부분 [클래스] 문자 클래스: 세트에 있는 문자 [^클래스] 역 클래스: 세트에 없는 문자 [x-y] 범위: 특정 범위에 있는 문자 \x 이스케이프: 메타 문자 x를 문자 그대로 사용 \<xyz 단어 위치: 단어의 앞부분 xyz\> 단어 위치: 단어의 끝부분
Findstr에서 사용 가능한 정규식은 온라인 명령을 참조하십시오.
파일을 지정한 for 반복문.
D:\>for /f %i in (test.txt) do @echo %i
a.txt
b.php
D:\>for /f "delims=. tokens=2" %i in (test.txt) do @echo %i
txt
php
문자열을 지정한 for 반복문.
D:\>for /f "tokens=2 delims=." %i in ("a.txt") do @echo %itxt
명령어를 지정한 for 반복문.
D:\>for /f "tokens=2 delims=." %i in ('echo a.txt') do @echo %itxt
안 되는 거 되게 많네. 리눅스 만세
댓글 없음:
댓글 쓰기