" "FNR}' file.txt &gtresult.txt 其中,表示当前处理的文件行内容,FNR表示当前处理的文件行行号。" /> " "FNR}' file.txt &gtresult.txt 其中,表示当前处理的文件行内容,FNR表示当前处理的文件行行号。"> 怎么在文件中每行后面添加行数号(shell命令)_IT百科_内存溢出

阅读33

怎么在文件中每行后面添加行数号(shell命令),第1张

用awk,一条

命令就可以搞定: awk '{print $0" "FNR}' file.txt >result.txt 其中,$0表示当前处理的

文件

行内容,FNR表示当前处理的文件行行号。

结果存在result.txt中。

为拓展思路,下面用一个不同的方法:

用sed得到每行行号,存入一个tmp文件,然后用paste合并这两个行数相同的文件就得到了。

假设你的原始文件名称为file.txt。

#!/bin/sh

sed -n '=' file.txt >tmp

paste file.txt tmp >result.txt

rm -f tmp

awk '{n=split($0,a,"")print a[n]}' filename

或者:

1

awk '{print substr($0,length())}' filename

TS=`grep "energy" OUTCAR | tail -1 | awk '{printf "%12.8f \n", $8 }'`

echo $TS >>comment这样就可以了。反引号`内的命令被赋值给变量TS。echo $TS

输出

变量,用>>将输出重定向到comment文件中。

反引号内的命令一共是3个,通过2次管道将输出进行传递。

grep "energy" OUTCAR表示搜索OUTCAR文件中带有energy单词的行

| 表示将上一个命令的输出结果作为下一个命令的输入

tail -1表示取最后一行,这个根据你的OUTCAR文件的内容而定,如果只有一行有单词energy,就不需要这个命令,如果有多行包含energy,就根据需要取相应行。


awk '{printf "%12.8f \n", $8 }' 表示将行的第8列打印出来,awk命令默认列分隔符就是空格,所以你这一行所需要取的数值在第8列上。打印格式为精确到小数点后8位(数值总位数为12位),根据你需要的精度取舍。如果要取完整的数值,也可以直接将这部分改为awk '{printf, $8 }'。

就是这样了。

欢迎分享,转载请注明来源:内存溢出

原文地址:
https://54852.com/bake/11767837.html数值
引号
(0)微信扫一扫打赏 支付宝扫一扫微信扫一扫
支付宝扫一扫
debaterdebater
一级用户组
怎么开通微信权限?
上一篇
2023-05-18
ajax怎么渲染数据并插入样式
2023-05-18

发表评论 后才能评论
提交

    评论列表(0条)
    马甸
    " "FNR}' file.txt &gtresult.txt其中,表示当前处理的文件行内容,FNR表示当前处理的文件行行号。", "pubDate":"2023-05-18", "upDate":"2023-05-18" } " "FNR}' file.txt &gtresult.txt其中,表示当前处理的文件行内容,FNR表示当前处理的文件行行号。', author : 'debater', cat_name : 'IT百科', time_y_m : '2023年05月', time_d : '18', site_motto : '内存溢出' };
    保存{label}{label}{label}{label}{script}{script}{script}{script}