sed에 접미사가 없는 파일이 포함되어 있습니다.

sed에 접미사가 없는 파일이 포함되어 있습니다.

내 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

*.*명령 뒤의 문자열은 정규식이 아닌 와일드카드 패턴입니다. 비슷해 보이지만 그렇지 않습니다. 예를 들어 .정규식에서는 "모든 문자"를 의미하지만 .와일드카드 패턴에서는 "리터럴"을 의미합니다. ?정규식 의 "모든 문자"와 동일합니다.

따라서 명령줄에서 다음을 수행합니다.

  1. *.*= 문자로 둘러싸인 "."을 포함하는 파일 이름,
  2. *= 현재 디렉토리의 모든 파일 및
  3. '*'=리터럴 이름은 입니다 *.

위에서 "파일"이라고 말하면 디렉터리가 포함됩니다. 구문에 대한 자세한 정보를 얻으려면 Google "와일드카드 패턴"을 사용하세요.

관련 정보