macos - Bash + 替换列中的字符串/值

标签 macos bash replace

文件:/etc/newsyslog.conf

我正在尝试替换每行的第三列(计数列)。看起来好像第一列和第二列是用制表符分隔的。但是,第二列和第三列由空格分隔。

我可以通过以下方式获取每行第三列的值:

grep /var /etc/newsyslog.conf | cut -d ' ' -f 3

但是,我在设置/替换第三列中的值时遇到问题。问题是我不知道任何给定行的第三列的值是什么。这使得使用我知道的任何方法都很难搜索/替换该特定(第三列)值/字符串。

感谢您提供的任何帮助或建议。

编辑:我应该提到这是一个 Mac OS 10.6 系统。

最佳答案

这里最好使用 awk 以避免多个命令:

awk '/\/var/{print $3}'

编辑:

awk 'BEGIN{OFS="\t"} /\/var/{$3="14"}1' /etc/newsyslog.conf > temp
mv temp /etc/newsyslog.conf

关于macos - Bash + 替换列中的字符串/值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16530559/

相关文章:

swift - 在 macOS 应用程序中使用 Swift vapor

python - 为什么 Automator 应用程序在作为 LaunchDaemon 运行时会出现权限错误?

linux - 在bash中获取文件的父目录

Linux - 列出具有特定目录的用户

sql - 在查询sql postgresql中替换A-Z和0-9

PHP用数组变量替换字符串中的{var ['key' ]}

c++ - 基于 IOKit 的 kext 驱动程序中的单例类

linux - Bash 并发作业卡住了

javascript - 如何返回正则表达式匹配子集(可能通过替换模式,但不替换)

macos - 下载 Rosetta 的软件包副本,以便在没有互联网的情况下手动传输到另一台 Mac