sed를 사용하여 문자열의 문자 전환

sed를 사용하여 문자열의 문자 전환

문자열에서 스위치 문자를 사용하는 방법은 무엇입니까 sed? 숫자가 있고 12345678두 번째와 네 번째 숫자를 바꾸고 싶다고 가정해 보겠습니다 (예: 숫자 = 14325678).

답변1

괄호를 사용하여 표현식의 일부를 그룹화한 다음 그룹 색인을 사용하여 다른 순서로 \n그룹을 호출합니다 n. 예를 들어

$ echo 12345678 | sed -E 's/(.)(.)(.)(.)/\1\4\3\2/'
14325678

답변2

다음과 같은 다양한 방법으로 이 작업을 수행할 수 있습니다.

 echo 12345678 |
 sed -e '
    s/./&\n/4
    s/./\n&/2
    s/\n\(.\)\(.*\)\(.\)\n/\3\2\1/
 '
 14325678

 perl -lne 'print+(unpack "AAAAA*")[0,3,2,1,4]' 

 perl -F -lane '@F[1,3] = @F[3,1];print @F'

 awk -F "" '{t=$2;$2=$4;$4=t}1' OFS=

awk를 사용하여 빈 문자열을 분할하여 각 문자를 필드로 만든 다음 이를 섞고 Ofs var를 통해 stdout으로 가져옵니다.

Perl을 사용하여 ASCII 템플릿을 사용하여 문자열의 압축을 푼 다음 순서를 다시 정렬하고 마지막으로 표준 출력으로 인쇄합니다. 기본적으로 Ofs는 비어 있습니다.

sed를 사용하여 먼저 뒤집어야 할 문자를 표시합니다. 그런 다음 마지막 단계에서 마커를 사용하여 교체합니다. 이 방법은 바꾸려는 두 문자 위치에 따라 크기가 조정됩니다.

HTH.

관련 정보