내 sed 명령이 접미사가 없는 파일을 제외하는 것 같습니다
sed -i.bak 's>/media/colic/>/media/>g' *.*
"filename.sh"는 포함하지만 "filename"은 포함하지 않습니다.
sed -i.bak 's>/media/colic/>/media/>g' *
sed help를 표시하면 도움이 필요하다는 뜻입니다. (따라서 이 질문이 있습니다.)
sed -i.bak 's>/media/colic/>/media/>g' '*'
파일을 찾을 수 없다고 알려줍니다
계속 추측할 수도 있겠지만, 내가 이해하지 못하는 것이 무엇인지 물어보는 것이 더 낫다고 생각했습니다.
답변1
*.*
명령 뒤의 문자열은 정규식이 아닌 와일드카드 패턴입니다. 비슷해 보이지만 그렇지 않습니다. 예를 들어 .
정규식에서는 "모든 문자"를 의미하지만 .
와일드카드 패턴에서는 "리터럴"을 의미합니다. ?
정규식 의 "모든 문자"와 동일합니다.
따라서 명령줄에서 다음을 수행합니다.
*.*
= 문자로 둘러싸인 "."을 포함하는 파일 이름,*
= 현재 디렉토리의 모든 파일 및'*'
=리터럴 이름은 입니다*
.
위에서 "파일"이라고 말하면 디렉터리가 포함됩니다. 구문에 대한 자세한 정보를 얻으려면 Google "와일드카드 패턴"을 사용하세요.