linux - 使用 awk 更改文件的特定行

标签 linux bash awk

我有一个文件,我想在特定行中进行修改。我用过这个:

#!/bin/bash/
cp /dir1/dir2/FILE_to_be_modified . ;
var ="$1 $1 $1";
awk -v li=4 -v new="$var" '{
        if (NR==li) {
                  print new;
        } else {
                 print $O;
        }
}' FILE_to_be_modified>>new_FILE

有了这个,我可以修改 FILE_to_be_modified 的第 4 行,但总是使用 9 9 9 12 12 12 这样的模式,现在我想要类似于 9 9 1112 12 14。我试过一些愚蠢的想法,例如将 var 更改为 $1 $1 $1+2。我应该使用 bc 吗?

最佳答案

Bash 算法:

var = "$1 $1 $(($1 + 2))"

看看the docsthe tutorial .

关于linux - 使用 awk 更改文件的特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9923056/

相关文章:

linux - 使用 wget 或 curl(首选 Wget)下载带有引用目录最后一部分名称的文件,而不是真实文件名

c++ - 当模态窗口最小化时最小化所有应用程序窗口(在 Linux 上)

android - 配置 : error: You need 32-bits luac when using lua from contrib

linux - 我如何检查某些目录是否存在然后在 makefile 中执行

bash - 有没有更好的方法来检查用户 X 是否是 Linux 上 BASH 中组 Y 的成员而不使用 getent?

bash - 从另一个脚本运行 shell 脚本

linux - bash - 从远程 ssh 命令捕获退出代码

bash - grep -vf 大文件太慢

linux - 如何使用 sed 或 awk 正则表达式在 linux shell 中解析此数据

bash - 文件中的列字符串版本,bash sed awk