sed를 사용하여 한 줄의 다른 문자 앞에 있는 문자를 바꾸세요.

sed를 사용하여 한 줄의 다른 문자 앞에 있는 문자를 바꾸세요.

/opt/tin/toss의 일부 줄을 교체하기 위해 sed 등을 사용해 보았습니다. *

예를 들어

37 7 * * * /opt/tin/toss
43 7 * * * /opt/tin/te1
58 7 * * * /opt/tin/test2

산출:

37 * * * * /opt/tin/toss
43 7 * * * /opt/tin/te1
58 7 * * * /opt/tin/test2

일반적으로 7은 무작위로 생성되며 0에서 24까지 2, 4 또는 8이 될 수 있습니다.

답변1

sed '/\/opt\/tin\/toss/ s/^\([^ ]* \+\)[^ ]*\( .*\)$/\1*\2/'

다음과 같이 읽을 수 있습니다.

가능하다면 /opt/tin/toss일치하는 패턴을 교체하세요.

^줄의 시작, 그 다음

\([^ ]* \+\)

\(임의 개수 의 문자로 구성된 첫 번째 그룹 [^ ]*(최대 하나 이상의 공백) \+, 그 다음 그룹 끝\)

[^ ]*

다음은 [^ ]*우주까지 무엇 이든 온다

\( .*\)

\( .*\)$그 다음에는 일치하는 두 번째 공백 세트가 오고 끝까지 모든 것이 이어집니다.

그리고

/\1*\2/

첫 번째 그룹, 그 다음 *두 번째 그룹.

답변2

sed의 예

sed  's/^\([0-9]*\) [0-9]*  *\(\*  *\* *\*  *\/opt\/tin\/toss.*\)$/\1 * \2/'

이것은 \([0-9]*\)첫 번째 숫자와 일치하고 값을 유지합니다.\1

이는 \(\* *\* *\* *\/opt\/tin\/toss.*\)명령줄의 마지막 별 3개와 일치하고 해당 값을 유지합니다.\1

관련 정보