2011-06-26 57 views
1

我有一個包含大約2000行的文件。 什麼是最簡單的方法來改變一個特定的行到別的。 說例如我想改變第400行:int cut_off = flow_max_-6; to int cut_off = flow_max_-8;更改文件中的單行

我需要這樣做在Linux控制檯

+3

Chanditha - 歡迎來到StackOverflow。現在你已經使用了它幾次,你一定會覺得它有用。獎勵那些花時間回答你問題的人。去'並接受'標記最好的答案,並讚揚所有特別有用的東西。 –

回答

1

我會用Vim

但是你可能喜歡:

sed -e '400,400s/6/8/' two_thousand_line_file.txt > new_two_thousand_line_file.txt 

更一般:

sed -e '400,400s/[[:digit:]]{1,}/8/' two_thousand_line_file.txt > new_two_thousand_line_file.txt 

或者:

sed -e '400,400s/\(int cut_off = flow_max_\).*\(;\)/\1some_other_number\2/' two_thousand_line_file.txt > new_two_thousand_line_file.txt 
+0

嗨,謝謝你。但它只適用於「flow_max_-6」。該數字必須是6.我如何更改它,以便它將替換任何數字的該行? 所以基本上第一部分「int cut_off = flow_max_」保持不變。我想正則表達式是需要的。我只是開始Linux和IM不是那麼好與他們。 – CKCK

+0

這將需要一個正則表達式。我已經添加了一個示例。 – Johnsyweb

+0

謝謝:) – CKCK

2

您可以通過使用sed實現這一點:

sed -i '400s/6/8/' yourfile.c