특정 단어만 표시되는 검색 폴더

특정 단어만 표시되는 검색 폴더

다음 파일이 포함된 폴더가 있습니다.

ondemand_kvm131_img.2
vm114_img.2
vm114_img.3
ondemand_vm205_img.3
label_ondemand_kvm131_img.1
vm117_img.1

나는하고 싶어요오직"이름"을 표시하므로 이 경우 출력은 다음과 같아야 합니다.

kvm131
vm114
vm114
vm205
kvm131
vm117

어떻게 할 수 있습니까? sed를 사용하여? 그렙? 미리 감사드립니다.

답변1

이 시도:

ls -1 | sed 's/_img.*//;s/.*_//'

답변2

이름의 정확한 형식과 이를 사용하여 수행하려는 작업에 따라 이를 수행할 수 있는 방법은 여러 가지가 있습니다. 가장 간단한 것은 아마도 다음과 같습니다 ls | sed:

$ ls | sed 's/^\(.*_\)*\([^_]*\)_img\.[0-9]/\2/'
kvm131
kvm131
vm205
vm114
vm114
vm117

파일 이름이 정상이고 시각적인 모양만 원하는 경우에는 괜찮지만 이름으로 더 많은 작업을 수행하는 경우 이상한 파일 이름으로 인해 오류가 발생할 가능성이 있습니다. 다음과 같이 개별적으로 얻을 수 있습니다.

$ for file in *; do left=${file%_img.?}; base=${left##*_}; echo $base; done 
kvm131
kvm131
vm205
vm114
vm114
vm117

echo선택한 명령으로 바꾸십시오 . 전체적으로 다른 형식을 사용하는 경우 두 형식을 모두 변경하여 형식에 더 가깝게 일치시킬 수 있습니다.

관련 정보