Abschnitt in der Datei ersetzen habe ich eine Datei, und ich versuche zu Regex, die die Linien zu entfernen, die hat:sed oder perl regex
flannel:
interface: $private_ipv4
etcd_endpoints: {{ .ETCDEndpoints }}
Ich habe versucht, diesen Perl-Befehl zu verwenden, es endet alles auf Entfernen von # Cloud-config bis - Name: docker.service
perl -i -00ne 'print unless /(flannel:).*([^ ]+).*([^ ]+).*}}/' file.txt
datei.txt:
#cloud-config
coreos:
update:
reboot-strategy: "off"
flannel:
interface: $private_ipv4
etcd_endpoints: {{ .ETCDEndpoints }}
etcd2:
name: controller
advertise-client-urls: http://$private_ipv4:2379
initial-advertise-peer-urls: http://$private_ipv4:2380
listen-client-urls: http://0.0.0.0:2379
listen-peer-urls: http://0.0.0.0:2380
initial-cluster: controller=http://$private_ipv4:2380
units:
- name: etcd2.service
command: start
runtime: true
- name: docker.service
drop-ins:
- name: 40-flannel.conf
content: |
[Unit]
Requires=flanneld.service
After=flanneld.service
[Service]
EnvironmentFile=/etc/kubernetes/cni/docker_opts_cni.env
...
dank perl -0777 -ne ‚s/Flanell: [^}] +}} //; print 'file.txt funktioniert .. es fehlt nur ein Extra} von Ihrer ursprünglichen Antwort – user1012135
__But eine richtige Art und Weise zu schlürfen eine Datei ist etwas größer als -0400 und -0777__ Gute Erklärung. Wie in den Dokumenten angegeben. –
@ChrisCharley Ja, ich habe diese Seite vielleicht ein paar Mal gesehen :) Ich hatte im Laufe der Zeit gelernt, die Präzision und Autorität der Dokumentation zu schätzen (in Perl) und Standards und dergleichen (in anderen Sprachen). Die meiste Zeit ist es die einzige ultimative Antwort. (In Perl ist das wahre Ultimum natürlich der Quellcode.) – zdim