Home > Blockchain >  Overwrite output to file in ubuntu
Overwrite output to file in ubuntu

Time:11-13

I want to overwrite the output of the shell command in a single file on the dockenginx container.

perl -pe 's/^server_names_hash_bucket_size 128;/#$&/' default.conf > default.conf

I ran the command, but the contents of the default.conf file are all erased.

perl -pe 's/^server_names_hash_bucket_size 128;/#$&/' default.conf >> default.conf

When I execute this command, the contents are added after that.

What should I do if I want to comment on this phrase "server_names_hash_bucket_size 128" in default.conf?

*External package is not available because it is a dockerginx.

CodePudding user response:

Flag -i of the perl command allows you to edit the file inplace:

-i[extension] edit <> files in place (makes backup if extension supplied)

Now you can use:

perl -i -pe 's/^.*server_names_hash_bucket_size 128;/#$&/' default.conf

Additionally, you can also use sed -i instead of perl -i -pe

sed -i 's/^.*server_names_hash_bucket_size 128;/#&/' default.conf

sed and perl are both available inside nginx docker container.

  • Related