내가 찾고 있는 것과 같이 패턴 문자열이 반복되는 파일이 있는데 ABC:10
파일에서 매번 ABC:10
이를 변환해야 합니다.XYZ:5
트릭 부분은 숫자 부분입니다. 예를 들어 10은 시간 기반이므로 파일을 다운로드할 때마다 변경되므로 X
숫자를 생각할 수 있습니다.
ABC:X
-> XYZ:(X-5)
.
파일의 번호는 항상 동일하지만 파일을 다시 다운로드하면 일정에 따라 변경됩니다. 신분증을 분실하지 않는 것도 중요합니다.
아래 파일 예의 경우 기본적으로 레벨 3이 남을 때마다 58.1일 남은 레벨 3 -> 데이터 및 58.1 -> 28.1(X-30)을 수정해야 합니다. 레벨 3 남은 횟수는 파일을 다운로드할 때마다 항상 동일하지만, 그 숫자는 기본적으로 남은 일수이므로, 하루가 지나면 1씩 감소합니다.
파일 예:
port: 6666
socks-port: 6699
redir-port: 6669
allow-lan: true
mode: Rule
log-level: info
external-controller: 0.0.0.0:9090
dns:
enable: true
ipv6: false
# listen: 0.0.0.0:53
# enhanced-mode: fake-ip
nameserver:
- 223.5.5.5
- 114.114.114.114
# - 'tls://dns.rubyfish.cn:853'
#fallback:
# - 'tcp://208.67.222.222:443'
# - 'tls://1.0.0.1:853'
# - 8.8.8.8
proxies:
- type: ss
server: test.com
port: 49679
password: test.com
cipher: aes-128-gcm
name: ♥流量:300.93GB 等级3剩:57.8天
proxy-groups:
- name:
답변1
노력하다
awk -v days=30 '/等级3剩/ { for(i=1;i<=NF;i++)
if ( $i ~ /等级3剩:/ ) { split($i,A,":") ; $i = "DATA:" A[2]-days "天" ;}}
{print;}'
어디
/等级3剩/
"레벨 3 왼쪽" 행을 선택하세요.for(i=1;i<=NF;i++) if ( $i ~ /等级3剩:/ )
루프 매개변수 검색 모드split($i,A,":")
A[1] 및 A[2]의 ":" 분할 패턴(이 예에서는)$i = "DATA:" A[2]-days "天" ;
조정값{ print }
모든 내용을 인쇄합니다(라인 수정 여부에 관계 없음).
참고하세요
명확성을 위해 프로그램을 여러 줄에 넣었는데, 한 줄에 해도 됩니다.
필요한 경우 외부 변수를 사용할 수 있도록 이것을 사용합니다
-v days=30
(예-v days=$DAYS
:)댓글에서 언급했듯이 인식이 상실된 것 같습니다.
- name: