Programing

OS X에서 sed로 탭 문자를 삽입하려면 어떻게해야합니까?

lottogame 2020. 11. 20. 08:26
반응형

OS X에서 sed로 탭 문자를 삽입하려면 어떻게해야합니까?


나는 시도했다 :

echo -e "egg\t  \t\t salad" | sed -E 's/[[:blank:]]+/\t/g'

결과 :

eggtsalad

과...

echo -e "egg\t  \t\t salad" | sed -E 's/[[:blank:]]+/\\t/g'

결과 :

egg\tsalad

내가 원하는 것 :

egg salad

시도 : Ctrl+ V를 누른 다음를 누릅니다 Tab.


ANSI-C 스타일 인용 사용 : $'string'

sed $'s/foo/\t/'

따라서 귀하의 예에서 간단히 다음을 추가하십시오 $.

echo -e "egg\t  \t\t salad" | sed -E $'s/[[:blank:]]+/\t/g'

OSX 본질적으로 1982 년 이후에 남겨진 고대 4.2BSD이기 때문에 대체 가 아니라 패턴 sed 에서만 이해 \t합니다 . 리터럴 탭을 사용하여 (이에 있습니다 +는 , ) 또는 GNU를 설치 보다 합리적인를 얻을 .\tsedbashvimCtrlVTabcoreutilssed


또 다른 옵션은 $(printf '\t')탭을 삽입하는 데 사용 하는 것입니다. 예 :

echo -e "egg\t  \t\t salad" | sed -E "s/[[:blank:]]+/$(printf '\t')/g"

awk 시도

echo -e "egg\t  \t\t salad" | awk '{gsub(/[[:blank:]]+/,"\t");print}'

참고 URL : https://stackoverflow.com/questions/5398395/how-can-i-insert-a-tab-character-with-sed-on-os-x

반응형