이 명령을 이해하고 분석해 보십시오.
echo -e '1234\n4567' | sed 's/^\(..\)\(..\)$/\1:\2/'
답변1
echo -e '1234\n4567'
echo
표준 출력에 매개변수를 씁니다.-e
백슬래시 이스케이프 해석을 활성화합니다.'1234\n4567'
쓸 순서입니다. 여기에는 작은따옴표를 사용하세요. 이것은\n
백슬래시 이스케이프새로운 라인을 생산합니다. 이-e
옵션이 없으면 리터럴echo
이 생성됩니다\n
.man echo
|
|
관로표준 출력왼쪽부터 ,echo
, 까지표준 입력오른쪽 명령의 경우sed
.
sed 's/^\(..\)\(..\)$/\1:\2/'
sed
s(스트림) 에드(itor)'s/^\(..\)\(..\)$/\1:\2/'
→s/ A / B /
s
A를 B로 교체ㅏ:
^\(..\)\(..\)$
^
줄의 시작\(
그룹 1 캡처 시작은(
리터럴입니다(
..
임의의 문자와 일치하여 캡처 그룹 1에 추가합니다..
임의의 문자와 일치하여 캡처 그룹 1에 추가합니다.
\)
캡처 그룹 1을 종료합니다.\(
캡처 그룹 2를 시작합니다..
임의의 문자와 일치하여 캡처 그룹 2에 추가합니다..
임의의 문자와 일치하여 캡처 그룹 2에 추가합니다.
\)
캡처 그룹 2를 종료합니다.
$
줄의 끝과 일치합니다.
- 두번째:
\1:\2
\1
캡처 그룹 1을 인쇄합니다.:
텍스트 인쇄:
\2
캡처 그룹 2를 인쇄합니다.
다시 말해서:
쓰다:
1234
4567
표준 출력을 생성하고 sed
.
at sed
; 표준 입력에서 읽고 4자 라인과 일치합니다. 처음 두 개와 마지막 두 개를 콜론으로 구분하고 결과를 인쇄합니다.
12:34
45:67