문제

7 줄의 텍스트가 있습니다.

a
b
c
d
e
f
g

이제 각 줄의 끝에 캐릭터를 추가하고 다음과 같이 끝내고 싶습니다.

a,
b,
c,
d,
e,
f,
g,

"SED"명령을 사용하고 TextMate에서 "필터를 통한 필터"를 사용하여 SED를 통해 선택을 실행할 수 있음을 알았습니다.

sed 's/$/,/'

이제 한 가지 질문이 남아 있습니다. 이것을 어떻게 어떤 방식으로 입력하는 텍스트 메이트 명령으로 전환합니까 (따라서 어떤 텍스트가 추가 될지 알고 있습니까?)

(이 작업을 시도하는 시도는 실패한 것으로 입증되었습니다)

도움이 되었습니까?

해결책

이것을 텍스트 번들 내에서 명령에 넣으면 클립 보드에있는 모든 것이 선택된 모든 줄의 끝까지 추가 할 수 있습니다.

#!/bin/bash
if [[ $(pbpaste|wc -l) -eq 0 ]]
    then r=`pbpaste`
    sed 's/$/'$r'/'
    else sed 's/$/,/'
fi

클립 보드에 하나 이상의 줄이 포함되어 있으면 선택한 라인의 끝에서 쉼표로 기본적으로 기본값을받습니다.

편집하다:

이것을 조금 더 취하려면 다음은 선택의 각 줄에 추가 될 문자열의 입력을 제기하는 대화 상자를 제공하는 버전이 있습니다.

#!/bin/bash
r=$(CocoaDialog inputbox --title "String to be appended to EOL" \
   --informative-text "Enter string:" \
   --button1 "Okay" --button2 "Cancel")

[[ $(head -n1 <<<"$r") == "2" ]] && exit_discard

r=$(tail -n1 <<<"$r")

sed "s/$/$r/"

다른 팁

~ 안에 텍스트 메뉴 이미 명령이 있습니다 "선택시 각 줄을 편집하십시오"정확히 이렇게하십시오. 커서를 첫 번째 줄에 놓고 각 라인에 반복하는 것을 반복합니다.

번들 편집기에서 새 명령을 만듭니다

#!/bin/bash
sed 's/$/,/'

입력 드롭 다운에서 선택하십시오 선택된 텍스트 또는 아무것도 아님
출력 선택에서 기존 텍스트를 바꾸십시오

방금 테스트했는데 잘 작동합니다.
더 효율적으로 키보드 단축키를 선택할 수도 있습니다.

명령 경로를 피하고 단순히 찾기/교체 대화 상자를 사용하는 경우 다음과 같이 간단히 수행하십시오.

  • 강조/추가 라인을 선택하십시오.
  • 찾기 대화 상자를 엽니 다
  • '정규 표현'확인
  • '찾기'필드에서 추가하십시오 '$' (줄의 끝을 나타내려면)
  • '교체'필드에서 추가하십시오 ',' (당신이 추가하고 싶은 것)
  • 잡고 있다 Option, 이것은 "선택 중"으로 "모든 것을 대체"로 바꿀 것입니다.

이 기술은 여러 가지 다른 유용한 방법으로 적용될 수 있습니다. 예를 들어, 변경 '$' 에게 '^' 각 라인을 접두사하려면.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top