由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Linux版 - a sed question
相关主题
Grep 能作这个吗?请问怎么把两个行数相等的文件合并起来?
问一个C Shell的sed用法。zan Linus
question about "stty"shell scripting 问题
一个shell script 的问题linux tcsh下less的问题
sed question: how to join even line to the odd line ?请教 GNU Screen display 的问题
awk外行凑个热闹。
SED命令求解linux如何生成可执行文件?
问一下加密硬盘的common practice现在有一个巨大的程序要编程
相关话题的讨论汇总
话题: sed话题: errcode话题: 1204905442话题: 0059221话题: 126586
进入Linux版参与讨论
1 (共1页)
d******e
发帖数: 143
1
请教个SED的用法
我有一些LOG文件,每一行的格式是一样的
我要把第5个field作一下运算再附在一起,如下
turn lines like this:
E,1204905442,3006,238,83888208,126586,N,0059221,T,K
into:
E,1204905442,3006,238,83888208[2128],126586,N,0059221,T,K
我感觉应该用这些shell,sed之类的应该挺容易的,可是写出来发现要用sed两次,很郁闷
不知道如何对匹配的部分直接运算一下
for s in $(cat $1)
do
errcode=$(echo $s | sed 's/E,[0-9]*,[0-9]*,[0-9]*,\([0-9]*\),.*/\1/')
errcode=$(($errcode % 65536))
echo $s | sed 's/\(E,[0-9]*,[0-9]*,[0-9]*,\)\([0-9]*\)\(,.*\)/\1\2['$errcode
']\3/'
done
多谢
w******p
发帖数: 166
2
use awk:
$ echo E,1204905442,3006,238,83888208,126586,N,0059221,T,K | awk -F\, 'BEGIN
{OFS=","}{$5=$5"["(""+$5 % 65536)"]";print $0}'
E,1204905442,3006,238,83888208[2128],126586,N,0059221,T,K
d******e
发帖数: 143
3
原来可以用awk
好像awk比sed要powerful
thanks!

BEGIN

【在 w******p 的大作中提到】
: use awk:
: $ echo E,1204905442,3006,238,83888208,126586,N,0059221,T,K | awk -F\, 'BEGIN
: {OFS=","}{$5=$5"["(""+$5 % 65536)"]";print $0}'
: E,1204905442,3006,238,83888208[2128],126586,N,0059221,T,K

1 (共1页)
进入Linux版参与讨论
相关主题
现在有一个巨大的程序要编程sed question: how to join even line to the odd line ?
命令输出里的文件名空格在 make 里面怎么保留?awk
为什么bash file执行的结果与直接在命令行执行的结果不一样SED命令求解
虽然用不到了不过还是问一下吧...问一下加密硬盘的common practice
Grep 能作这个吗?请问怎么把两个行数相等的文件合并起来?
问一个C Shell的sed用法。zan Linus
question about "stty"shell scripting 问题
一个shell script 的问题linux tcsh下less的问题
相关话题的讨论汇总
话题: sed话题: errcode话题: 1204905442话题: 0059221话题: 126586