我有一个如下文本文件
01 02 03 04 05
11 22 33 44 55
21 22 23 24 25
31 32 33 34 35
41 42 43 44 45
我的文本文件有五行五列,以空格分隔。现在我决定用99来改变第3行和第4列(我的意思是24)的值。
这意味着我的输出将是:
01 02 03 04 05
11 22 33 44 55
21 22 23 99 25
31 32 33 34 35
41 42 43 44 45
如果你能引导我,我感激不尽
此致
答案 0 :(得分:0)
使用awk
:
$ awk 'NR == 3 { $4 = 99 } { print }' data.in >data.out
awk
脚本将打印每一行,但如果找到第三行,它将首先将第四个值更改为99.
注意:NR
表示"当前记录的序号",而不是"行号",但是因为默认情况下记录是一行,所以' ;在这种情况下是一样的。
答案 1 :(得分:0)
如果您不想在两行之间保留空白行,则以下操作应该有效。
awk 'NR==3 {$4=99}1' file
如果你想在两行之间保留空白行,那么下面应该有效。
grep . file | awk 'BEGIN{ORS="\n\n"}NR==3{$4="99"}1'
01 02 03 04 05
11 22 33 44 55
21 22 23 99 25
31 32 33 34 35
41 42 43 44 45