use*_*269 9 grep sed awk text-processing replace
我有多个包含 12 行和 3 列的文本文件。
例子:
2 6 0.74
42 6 0.58
80 6 0
112 6 0.24
132 6 1
216 6 0.7
342 6 0
390 6 0.21
432 6 0.56
466 6 0.75
524 6 0.6
646 6 0.9
Run Code Online (Sandbox Code Playgroud)
我想在所有行中将第三列的所有值设置为 1。
输出应如下所示:
2 6 1
42 6 1
80 6 1
112 6 1
132 6 1
216 6 1
342 6 1
390 6 1
432 6 1
466 6 1
524 6 1
646 6 1
Run Code Online (Sandbox Code Playgroud)
有谁知道可以解决这个问题的命令?
Arc*_*mar 12
尝试
awk '{$3=1 ; print ;}' oldfile > newfile
Run Code Online (Sandbox Code Playgroud)
$3 = 1
将第三个字段设置为 1sed
及其-i
就地编辑选项)sed -i 's/[0-9.]*$/1/' file
Run Code Online (Sandbox Code Playgroud)
[0-9.]*$
是从一个序列0
到9
和.
到行的结尾。sed -i 's/[^ ]*$/1/' file
Run Code Online (Sandbox Code Playgroud)
[^ ]*$
除空格外的任何字符,直到行尾。预期输出中的行似乎以两个空格字符结尾,并且字段由一个制表符和一个空格字符分隔。
如果这确实是您想要的,那么您需要:
awk -v 'OFS=\t ' '$3="1 "' < infile > outfile
Run Code Online (Sandbox Code Playgroud)
或与sed
:
tab=$(printf '\t')
sed "
s/[[:blank:]]\{1,\}/$tab /g
s/[^[:blank:]]\{1,\}[[:blank:]]*$/1 /
s/^[[:blank:]]*//" < infile > outfile
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
38380 次 |
最近记录: |