임이 디렉토리 안의 각 파일과 폴더를 반복하고 파일 이름의 일부를 변수로 추출하려고 시도하지만 올바르게 sed 작업을 수행 할 수 없습니다. 나는 파일 이름을 모두 얻었거나 모두 가져 오지 않았다.OS X에서 sed를 사용하여 부분 문자열을 추출하는 방법은 무엇입니까?
전체 파일 이름을 캡처해야 스크립트 버전 :
#!/bin/bash
for f in *
do
substring=`echo $f | sed -E -n 's/(.*)/\1/'`
echo "sub: $substring"
done
하지만 그 대신 내가 할을 아무것도 :
sub:
sub:
sub:
sub:
...
이 버전은 파일 이름에 나에게 단지 첫 번째 문자를 제공해야합니다 :
#!/bin/bash
for f in *
do
substring=`echo $f | sed -E 's/^([a-zA-Z])/\1/'`
echo "sub: $substring"
done
하지만 그 대신 나는 전체 파일 이름을 가져 :
sub: Adlm
sub: Applications
sub: Applications (Parallels)
sub: Desktop
...
나는 수많은 그것의 반복하고 무엇을 기본적으로 내가 -n
를 사용하는 경우 내가 아무것도 얻을 내가하지 않으면 내가 전체 파일 이름을 가져올 수 있다는 것입니다 귀결을 시도했습니다.
다른 사람이 나에게 첫 번째 캐릭터를 가져 오는 방법을 보여줄 수 있습니까?
또는 내 전반적인 목표는 하위 문자열을 추출하여 변수에 저장할 수있게하는 것입니다. 누구에게나 더 나은 방법이 있다면 그 점도 인정할 것입니다.
미리 감사드립니다.
나는 sed 대신에 grep -o를 원한다고 생각한다 – FDinoff
오래되고 구식 인 backtics를 사용하면 안된다. 다음과 같이 괄호를 사용하십시오. var = $ (code) – Jotne
왜 내 질문에 투표가 내려 졌습니까? 미래의 실수를 피할 수 있도록 부탁드립니다. – cutmancometh