首页 > 编程知识 正文

antimalware service executable怎么关,linux去掉最后一行换行符

时间:2023-05-03 20:44:01 阅读:207980 作者:531

这是一种方式:

$sed '/^username4/{s/ [^ ]*/ anything/3}' file

username1 20130310 enabled 20130310 enabled

username2 20130310 enabled 20130321 disabled

username3 20130320 disabled 20130321 enabled

username4 20130310 disabled anything disabled

# store changes back to the file

$sed -i '/^username4/{s/ [^ ]*/ anything/3}' file

但是因为sed具有-i选项而避免使用awk并不是一个好理由. awk更适合处理这类问题.

$awk '$1=="username4"{$4="anything"}1' file

username1 20130310 enabled 20130310 enabled

username2 20130310 enabled 20130321 disabled

username3 20130320 disabled 20130321 enabled

username4 20130310 disabled anything disabled

# store changes back to the file

$awk '$1=="username4"{$4="anything"}1' file > tmp && mv tmp file

使用awk,您可以轻松地进行字段比较和编辑,使用shell变量不是引用噩梦,并且理解您昨天写的脚本不是和sed不同的问题:

$linenumber=4

$newvalue=anything

$awk 'NR==n{$4=a}1' n=$linenumber a=$newvalue file

username1 20130310 enabled 20130310 enabled

username2 20130310 enabled 20130321 disabled

username3 20130320 disabled 20130321 enabled

username4 20130310 disabled anything disabled

$awk 'NR==n{$4=a}1' n=$linenumber a=$newvalue file > tmp && mv tmp file

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。