Unix Sed命令不工作?
我在unix文件中有这样一个表。普通文本。我想用诸如9=cat、22=dog之类的值替换ID列的编号。当我使用命令时 sed's/9/cat/' 它正在用cat替换9的所有瞬间。我不能仅仅因为id有时会与值中的数字相匹配就这样做。先谢谢你Unix Sed命令不工作?,unix,sed,Unix,Sed,我在unix文件中有这样一个表。普通文本。我想用诸如9=cat、22=dog之类的值替换ID列的编号。当我使用命令时 sed's/9/cat/' 它正在用cat替换9的所有瞬间。我不能仅仅因为id有时会与值中的数字相匹配就这样做。先谢谢你 Original Table MAX(VALUE) Id 37787 9 151326 22 108339 24 10069 303 期望
Original Table
MAX(VALUE) Id
37787 9
151326 22
108339 24
10069 303
期望结果表
MAX(VALUE) Id
37787 9
151326 22
108339 24
10069 303
我得到了什么
MAX(VALUE) Id
37787 9
151326 22
10833Cat 24
1006Cat 303
第二项问题
sed 's/22/cat/' Report >> Report
sed 's/24/dog/' Report >> Report
sed 's/801/lion/' Report >> Report
sed 's/821/lion/' Report >> Report
当我使用这个命令时,它似乎打印出4个相同结果的表。我尝试使用>但是没有显示任何表。谁知道为什么?再次感谢 要替换线端的数字,请包括线端锚:
sed 's/9$/Cat/'
为了防止将9替换为应该用于Fish的Cat in 19,请从最长的Id号改为最短的Id号
此外,不要多次调用sed
,而是使用多个命令调用它一次(某些语法在所有版本的sed中都不受普遍支持):
或
要就地更改文件,请使用-i
:
sed -i~ 's/...//' Report
(如果您的sed版本支持)。同时写入正在读取的文件不起作用
sed -e 's/22$/Dog/' -e 's/9$/Cat/'
sed -i~ 's/...//' Report