x=`src/lstat64 $TEST_DIR/$tmp.1 | sed -n -e '/ Links: /s/.*Links: *//p'`
이 스크립트에서. 이 부분은 이해가 되는데, "/s/.*Links: *//p'"
이해가 안되는 건 '/ Links: '
그게 무슨 "/ "
뜻인가요?
답변1
/ Links: /
주소 필터입니다. 그 뜻은:"필터와 일치하는 행에만 다음 작업을 적용합니다."이 경우 필터는 정규식일 수도 있고, 줄 번호, 줄 범위, 시작 및 중지 정규식 조합일 수도 있습니다."n 줄마다"실현을 위한 몇 가지 조건 sed
.
답변2
당신은 오해가 있습니다. 귀하의 명령은 다음과 같이 해석될 수 있습니다.
sed - n -e '/pattern/ s/pattern/replace pattern/p'
따라서 처음 두 개 /
는 에 속합니다 /pattern/
. 이는 정규식 일치를 의미합니다.
/regexp/
Match lines matching the regular expression regexp.
답변3
내가 이해하지 못하는 유일한 것은 "/link:"입니다.
당신의 sed
표정필터패턴 Links:
(선행 및 후행 공백 포함)과 일치하고 교체를 수행하는 줄
s/.*Links: *//
또한 -n
패턴 공간의 자동 인쇄를 억제하고 p
현재 패턴 공간을 인쇄합니다.
요약하면 파이프는 입력에서 sed
일치하는 줄만 인쇄합니다.Links:
뒤쪽에교체를 수행합니다 s/.*Links: *//
.
인용 출처 man sed
:
-n, --quiet, --silent
suppress automatic printing of pattern space
p Print the current pattern space.
/regexp/
Match lines matching the regular expression regexp.
s/regexp/replacement/
Attempt to match regexp against the pattern space. If
successful, replace that portion matched with replacement. The
replacement may contain the special character & to refer to that
portion of the pattern space which matched, and the special
escapes \1 through \9 to refer to the corresponding matching
sub-expressions in the regexp.