Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在awk中传递变量行号和字符串以在文件中打印

在awk中传递变量行号和字符串以在文件中打印
EN

Stack Overflow用户
提问于 2015-03-26 15:56:42
回答 1查看 662关注 0票数 1

在zsh中将变量行号和字符串传递给awk,让awk在给定行号处插入字符串,语法会是什么样子?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/zsh

freq_pols=('10 10' '10 11c' '10 11s' '10 20' '10 21c' '10 21s' '10 22c' '10 22s' '11c 11c' '11c 11s' '11c 20' '11c 21c' '11c 21s' '11c 22c' '11c 22s' '11s 11s' '11s 20' '11s 21c' '11s 21s' '11s 22c' '11s 22s' '20 20' '20 21c' '20 21s' '20 22c' '20 22s' '21c 21c' '21c 21s' '21c 22c' '21c 22s' '21s 21s' '21s 22c' '21s 22s' '22c 22c' '22c 22s' '22s 22s')

line_number_O=('8' '11' '14' '17' '20' '23' '26' '29' '32' '35' '38' '41' '44' '47' '50' '53' '56' '59' '62' '65' '68' '71' '74' '77' '80' '83' '86' '89' '92' '95' '98' '101' '104' '107' '110' '113')
line_number_H1=('118' '121' '124' '127' '130' '133')
line_number_H2=('138' '141' '144' '147' '150' '153')

zeros="     0.00000000  0.00000000  0.00000000  0.00000000  0.00000000"


for ((job=1;job<=2.0;job++));
do
output=~/interpolate/grid_1_11_15/aiff/m$job.freq_pol

    for ((i=1;i<=36;i++));
    do
    holder=$line_number_O[i]
    tmp=$(sed -n "${holder}p" $output)

        if [[ $tmp != $freq_pols[i] ]];then
        #echo $tmp
        awk -v n=$holder -v s=$zeros 'NR == n {print s} {print}' $output > test
        awk -v n=$holder -v s=$freq_pols[i] 'NR == n {print s} {print}' $output > test
        fi

    done


done

样本输入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Title monomer ... monomer
Frequencies   0.5    10
Skip  0
Print nonzero
Molecule  monomer
Site  O1  type  O1
10 10
 7.16240000      7.13140000      6.95110000      6.37710000      5.16380000
 3.41180000      1.74320000      0.64940000      0.12840000      0.00480000
10 11s
-0.78000000     -0.77400000     -0.74000000     -0.64100000     -0.45000000
-0.22200000     -0.09000000     -0.03200000     -0.00500000      0.00000000
.....

样本输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Title monomer ... monomer
Frequencies   0.5    10
Skip  0
Print nonzero
Molecule  monomer
Site  O1  type  O1
10 10
 7.16240000      7.13140000      6.95110000      6.37710000      5.16380000
 3.41180000      1.74320000      0.64940000      0.12840000      0.00480000
**10 11c**
**0.0000000      0.00000000     0.00000000     0.00000000     0.0000000**
**0.0000000      0.00000000     0.00000000     0.00000000     0.0000000**
10 11s
-0.78000000     -0.77400000     -0.74000000     -0.64100000     -0.45000000
-0.22200000     -0.09000000     -0.03200000     -0.00500000      0.00000000
.....

黑体字是我想要补充的内容。(粗体文本现在被**字符包围: Shellter)

EN

回答 1

Stack Overflow用户

发布于 2015-04-02 16:33:06

我会和sed一起去。Here你可以看到一个对你有用的例子。考虑到在文件中追加行号时,行号可能会发生变化,因此应该追加反向行号。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29291004

复制
相关文章
使用awk打印文件中的字段和列
Awk 自动将提供给它的输入行划分为字段,一个字段可以定义为一组字符,这些字符通过内部字段分隔符与其他字段分开。 如果你熟悉 Unix/Linux 或者做bash shell 编程,那么你应该知道什么是内部字段分隔符 (IFS) 变量是。Awk 中的默认 IFS 是制表符和空格。 Awk: 遇到输入行时,根据定义的IFS,第一组字符为field one,访问时使用 1,第二组字符是字段二,使用访问 2,第三组字符是字段三,使用访问 为了更好地理解这个 awk 字段编辑,让我们看看下面的例子: Exampl
入门笔记
2022/06/02
10K0
MySQL 在查询结果中记录行号
在其他的关系型数据库中,都有rownum这类型的内置函数来提供查询结果的行号,但是MySQL没有,阿福也一直觉得奇怪。
用户2353021
2020/05/09
6.6K0
jsp中在href中传递参数
<% Configuration conf = new Configuration(); URI uri = new URI("hdfs://192.168.0.52:9010"); FileSystem fileSystem = FileSystem.get(uri, conf); //System.out.println("Hdfs directory is"+"\n"); Path src1 = new Path("hdfs://192.168.0.52:9
闵开慧
2018/03/30
4.7K0
在文件中输入字符串HelloWord
Our life today is three years ago, our life three years later is today's choice.
小Bob来啦
2020/12/15
2.4K0
在文件中输入字符串HelloWord
在Java中字符串是通过引用传递的?
这是一个经典的java问题。在stackoverflow上,许多类似的问题已经被问过了,但是许多回答是错误的或不完整的。 如果你不想深入思考的话,这个问题很简单。如果你想明白的更彻底,那么问题可能容易让人迷惑不清。 1. 一段有趣但令人困惑的代码 public static void main(String[] args) { String x = new String("ab"); change(x); System.out.println(x); } public static void c
三哥
2018/06/15
6.2K3
AWK中的字段,记录和变量【Programming】
本文为awk入门系列的第二篇文章,在本篇文章中,你可以了解到有关字段,记录和一些功能强大的awk变量。
Potato
2019/11/09
2.1K0
AWK中的字段,记录和变量【Programming】
在https中传递查询字符串的安全性
译者:java达人-卍极客 英文链接: http://blog.httpwatch.com/2009/02/20/how-secure-are-query-strings-over-https/(点击
java达人
2018/01/31
2.3K0
在https中传递查询字符串的安全性
JSTL 和 JSP 中变量互相访问1)<%%>变量在jstl中获取的例子:2)jstl变量在<%%>中获取的例子:
1)<%%>变量在jstl中获取的例子: <% String username="zhangsan"; pageContext.setAttribute("username",username); %> <c:out value="${username}"/> 即:jsp 页面中<%%>中的变量在定义后,需要放置到pageContext属性中,才能被获取(当然也可以放置到request和session、 applicatio中,这要根据实际应用来做决定,一般只是在页面中使用的化,使用
孙亖
2018/06/07
7.2K0
HTML中传递和引用JavaScript变量
http://ivantian2008.blog.51cto.com/622133/1127456
明哥的运维笔记
2019/01/30
5.6K0
在js中获取thymeleaf变量
大人者,不失其赤子之心者也。——《孟子·离娄下》 代码很简单 如下即可,这里的'Achao'是为了防止编译报错 <script th:inline="javascript"> var data = /*[[${data}]]*/ 'Achao'; console.log(data); </script>
阿超
2022/08/16
13.3K0
.java文件怎么在cmd中运行(以Helloworld为例)
提示:下面这个是有关.java文件怎么在cmd中运行的教程(以win10操作系统为主)
全栈程序员站长
2022/09/01
6.7K0
httprunner 2.x学习12-在testcase中传递变量(output)
httprunner 2.x 的版本,testcase 可以引用 api, 同样的 testcase 也可以引用另外一个 testcase 文件 在2个 testcase 中传递变量可以用到 output 关键字
上海-悠悠
2021/04/26
9360
【说站】python在函数中传递实参
若要使函数接受不同类型的实参,则必须将接受任意数量实参的形参放在函数定义的最后。首先,Python匹配位置实参和关键词实参,然后将剩余的实参收集到最后一个形参中。
很酷的站长
2022/11/23
1.6K0
【说站】python在函数中传递实参
在 Vue 中,父组件中传递数据给子组件
在父组件中传递数据给子组件。在 Vue 中,可以通过 props 属性来实现父组件向子组件传递数据的功能。
王小婷
2023/09/11
3140
虚拟变量在模型中的作用
实际场景中,有很多现象不能单纯的进行定量描述,只能用例如“出现”“不出现”这样的形式进行描述,这种情况下就需要引入虚拟变量。例如即将到来的女生节,每年的这个时候毛绒玩具的销量都会上升,说明女生节对毛绒玩具的销量产生了一定影响,但是这个影响程度又很难界定,这时只能定义一个虚拟变量去描述事情“发生”与“不发生”了。
许卉
2019/07/15
4.3K0
在条码打印软件中如何打印黑底白字标签
在条码打印软件中绘制普通文本添加文字的的时候,一般都是白底黑字的。但是有的时候,个别客户想要实现黑底白字的效果,这个在条码打印软件中该如何设置呢?接下来我们一起来看下在条码打印软件中将文字设置成黑底白字的操作步骤:
用户5746110
2019/09/10
2.3K0
使用 Meld 在 Linux 中以图形方式比较文件和文件夹
如何比较两个相似的文件来检查差异?答案显而易见,就是使用 Linux 中的 diff 命令。
用户8639654
2021/09/10
3.8K0
在慢变量中寻找小趋势
罗振宇在他的跨年演讲中重磅推荐的新书——何帆的《变量》,是我在2019年看完的第一本书。读完收获良多,因此就总结了一下,写下一篇读书笔记。
Keegan小钢
2019/03/04
2.2K0
在js中获取thymeleaf变量(二)
不过要注意一点,如果是对象格式的数据,需要在script标签上加th:inline="javascript"
阿超
2022/08/16
9.5K0
在js中获取thymeleaf变量(二)
在Android logcat中打印FFmpeg调试信息
在FFmpeg源码中的ffmpeg.c文件的main函数中有avlogsetcallback的调用,而logcallback_null是个空的回调函数,一个思路是可以直接在该回调函数写打印代码:
用户1205080
2018/12/05
1.5K0
在Android logcat中打印FFmpeg调试信息

相似问题

在awk中在行号后打印第n行

513

在AWK中打印带有变量的字符串

18

在awk中传递变量

22

在awk中传递shell变量

11

在awk命令中传递和比较外部变量

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文