linux下,我有一个8000万行的文本,需要把所有偶数行的前4个字符删掉,请问sed或者awk怎么执行呢?
格式如下:
12345612
ABCDFGG
14576711
GRSAFFA
把偶数行前4个字符删掉变成
12345612
FGG
14576711
FFA
sed楼上已经说过了,我这里就不写了,就写个awk的。
注释:
$FNR记录当前处理行的行号
$FNR%2判定是否能被整除,能整除肯定是偶数
substr($0,5)内置函数是取当前处理行,从第5位开始到行尾的数据
诚恳回答,敬请选择!
sed或者akw删除文本偶数行前4个字符
奇偶两行一同载入缓存区, 中间用换行符 \\n 隔开 因此\\n后面的四个字符就是偶数行里要删除的 然后把 \\n... 这四个字符 替换为\\n即可
shell中 sed或awk 通过分隔符删除相应字段
awk -F"|" '{print $1"|"$2"|"$4"|"}' yourfile这样就会在终端输出结果,如果要保存,只需把输出重定向到一个文件就行了 awk -F"|" '{print $1"|"$2"|"$4"|"}' yourfile >newfile 或者使用sed sed 's\/|[^|]*\\(|[^|]*|$\\)\/\\1\/' yourfile如果想直接修改原文件:sed...
如何用SED、AWK、GREP 批处理命令 删除 文本文件 指定的几个行
sed -e '2d' -e '10d' myfile.txt > mynewfile.txt 删除第二第十行,输出保存在mynewfile.txt 'Xd' X就是指定的行号,d是删除操作
如何用 awk sed 删除特定字符左边或右边,高
sed 's\/.特定字符\/特定字符\/g'
如何用awk,sed,grep实现查找指定位置并替换或删除所在行?
sed -ri 's\/(.{4})TT(.*)\/\\1sa\\2\/' -e 's\/(.{4})SA(.*)\/\\1TT\\2\/' test.txt 一起交流学习linux
sed或者awk如何替换一段文字中的某些字符
sed中可以用 sed ‘s\/查找内容或正则表达式\/替换成的内容\/g’ 文件名 如果直接在文件中更改, sed后加上 -i
利用linux命令行工具进行文本行过滤的方法
用head和tail两个工具:lines.txt head -n 8 | tail -n 3 Line No 6 Line No 7 Line No 8 sed的方法:sed -n '6,8p' lines.txt Line No 6 Line No 7 Line No 8 awk的方法:awk '(NR=6)(NR=8)' lines.txt Line No 6 Line No 7 Line No 8 只显示文本奇数行或偶数行 sed...
如何用sed或awk模糊匹配指定字符串并删除\/替换
sed:sed 's\/a..e\/【替换为的字串,不写就是删除】\/g' 文件名 上面是查找以a**e这样的字符串也可以写其他的正则表达式,并删除或替换 awk:awk '{gsub(\/a..e\/,"替换内容或为空");print}' 文件名 同上,替换项 写成空字符串就能实现删除功能。
awk或者sed 替换文件的内容
sed 里如果用变量,使用双引号 sed -i "s\/^HOSTNAME\/HOSTNAME=$NAME\/g" network 或者隔离出来 sed -i 's\/^HOSTNAME\/HOSTNAME='$NAME'\/g' network
Linux 文本处理三剑客:grep、sed 和 awk
sed则以脚本形式处理文本,如追加、插入、删除和替换等功能。例如,sed -e '\/Linux\/a newline'可以在匹配到"Linux"的行后添加内容,而-s和-v选项可以隐藏错误信息或显示不匹配的行。awk则在数据分析方面更为强大,通过逐行读取文件,以分隔符切割数据并进行复杂操作,如条件判断和函数应用。awk的基本...