15

I know how to add new text to a file, but how can I edit it?

Example: adding hello_world = 1 to test.txt using the following command:

echo "hello_world = 1" >> test.txt

But how can I change 1 to 0 or something else?

2
  • What is your mean by without open editor i.e. you don't want use also useful CLI text editor like: vi or nano as well as GUI like: gedit
    – Pandya
    Jul 2, 2014 at 12:08
  • because I want to make a script for my android, I know android use linux kernel and has some linux command. And my script working perfectly
    – Marco98T
    Jul 5, 2014 at 9:28

2 Answers 2

35

Using sed:

sed -i 's/1/0/g' test.txt

In general:

sed -i 's/oldstring/newstring/g' filename

See man sed for more info.

3
  • for single substitution, you don't even need a global flag. Jul 2, 2014 at 11:55
  • Downvote because answer is already exists here.
    – c0rp
    Jul 2, 2014 at 12:17
  • Why do you downvote the correct answer then, cOrp, and not the duplicate question?
    – foo
    Sep 3, 2020 at 14:19
5

Through awk,

awk '{sub(/1/,"0")}1' infile > outfile

Example:

$ echo 'hello_world = 1' | awk '{sub(/1/,"0")}1'
hello_world = 0

Not the answer you're looking for? Browse other questions tagged .