처리할 파일 이름 목록을 less *.txt
사용하여 많은 파일을 수동으로 탐색할 수 있기를 원합니다 . :n
그런 일이 가능합니까? 이 목적에 더 적합한 다른 도구가 있습니까?
답변1
자신만의 less
특수 명령 키를 설정할 수 있습니다. 파일을 생성 ~/.lesskey
하고 시작 부분에 다음 두 줄을 입력합니다.
#command
ok shell echo % >>/tmp/list\n
그런 다음 명령을 내립니다.
lesskey
컴파일된 파일. less
해당 파일에 대해 명령어를 실행하고, 파일명을 저장하려면 2자를 입력하세요 ok
. 에코가 표시됩니다.
!echo myfilename >>/tmp/list
!done (press RETURN)
현재 파일 이름(%)을 에 저장합니다 /tmp/list
. 계속하려면 Enter를 누르세요. 나는 ok
무작위로 순서를 선택했다. 원하는 단일 문자나 일련의 문자를 사용할 수 있습니다. :n
줄 끝에 명령을 추가하거나 다음 파일로 이동할 수 있습니다.shell
~/.lesskey
파일이 없으면 lesskey
위 파일에서 실행하고 base64
일부 바이너리가 포함되어 있으므로 전달했습니다. 어쩌면 이것을 사용해 볼 수도 있습니다:
echo 'AE0rR2MaAG9rAJtlY2hvICUgPj4vdG1wL2xpc3QKOm4AZQAAdgAAeEVuZA==' | base64 -d >~/.less
답변2
한 가지 접근 방식은 최소한의 키 입력으로 작업을 수행하는 스크립트를 작성하는 것입니다. 그러나 스크립트를 철저하게 작성하고 테스트할 시간이 없다면 가지고 있는 less 버전에 따라 더 적게 사용할 수도 있습니다.
버전 444를 사용하여 less
테스트되었으며 다음은 샘플 연습입니다.
먼저 a.txt b.txt c.txt d.txt 4개의 파일이 있다고 가정합니다.
$ less *.txt
a.txt가 좋아 보이므로 다음 명령을 사용하여 다음 내용을 확인할 수 있습니다.:n
b.txt가 잘못된 것 같으니 마크업하려면 다음을 입력하세요.
! echo % | tee -a bad.txt
응답 가능성이 낮음:
b.txt
!done (press RETURN)
계속해 :n
.
c.txt는 괜찮아 보입니다. 계속해:n
d.txt도 나빠 보이지만 모든 키 입력을 다시 입력할 필요는 없습니다. !
화살표를 위로 올리면 마지막 명령이 자동으로 채워지고 다음 d.txt
위치에 저장됩니다.bad.txt
그러면 q
덜 조심해야 합니다.
이제 저장된 목록을 볼 수 있습니다.
$ cat bad.txt
b.txt
d.txt
설명하다
! shell command
물론 %가 현재 파일인 쉘 명령을 실행하십시오.- using은
tee
선택 사항입니다. 명령을 실행한 후 방금 저장한 파일 이름에 대한 추가 표시가 표시됩니다. -a
추가하세요. 그렇지 않으면 덮어쓰게 되고 bad.txt에는 하나의 레코드만 남게 됩니다.! echo % >> bad.txt
bad.txt에 추가 할 수도 있습니다.
답변3
less
이와 같은 작업을 수행해야 할 경우 하나의 탭과 vi
인접한 탭이 있는 탭 터미널을 사용합니다 .
태그를 지정하려는 파일에 도달하면 화면 하단에 있는 파일 이름을 두 번 클릭하고 탭 less
으로 전환한 vi
다음 '붙여넣기'를 마우스 가운데 버튼으로 클릭하고 을 탭한 ENTER
다음 다시 less
탭으로 전환합니다.
파일이 수십 개가 넘는 경우(즉, 몇 분 이상 걸릴 수 있음) 하나 이상의 일반적인 도구( , grep
, awk
등 perl
) 를 사용하여 선택 프로세스를 자동화하는 방법을 찾으려고 노력할 것입니다.
grep
간단한 검색 awk
이나 perl
더 복잡한 검색에 사용합니다.