어쩌면 간단한 일이지만 머리가 아프다.
다음과 같은 경로를 가진 파일 목록이 있습니다 stuff.txt
.
c:\users\none\file1.txt
c:\users\none\file2.txt
g:\home\share\make.log
다음과 같이 파일 이름을 다른 파일로 간단히 출력하려면 어떻게 해야 합니까?
file1.txt
file2.txt
make.log
미리 감사드립니다.
답변1
awk -F'\' '{ print $NF }' stuff.txt
필드 구분 기호를 설정하고 \
각 줄의 마지막 필드를 인쇄합니다.
답변2
사용행복하다(이전 Perl_6)
~$ raku -ne 'put IO::Spec::Win32.basename($_);' stuff.txt
#OR
~$ raku -ne 'put IO::Spec::Win32.basename($_.trim-trailing);' stuff.txt
Raku는 Perl 계열의 프로그래밍 언어입니다. 위의 코드는 파일 경로를 가져와서 이를 IO
개체로 처리합니다. 개체에는 네 가지 주요 클래스(Unix, Windows, Cygwin 및 QNX)가 있습니다. Windows 경로가 있으므로 IO::Spec::Win32
이 메서드가 호출됩니다(경로 구분 기호를 올바르게 이해하기 위해). 마지막으로 basename
파일명을 알려주세요. 줄 끝에 사용하거나 trim
지울 수 있는 공백이 있는 것 같습니다 trim-trailing
.
입력 예:
c:\users\none\file1.txt
c:\users\none\file2.txt
g:\home\share\make.log
예제 출력:
file1.txt
file2.txt
make.log
https://docs.raku.org/type/IO/Spec/Win32
https://docs.raku.org/routine/basename
https://raku.org