首页 > 其他分享 >Awk、Sed、Grep、Cut命令基本用法

Awk、Sed、Grep、Cut命令基本用法

时间:2023-10-22 14:01:42浏览次数:36  
标签:Cut grep pattern cut Sed awk file Grep txt

awk、sed、grep、cut是Linux中文本处理、shell开发、数据截取的利器。

Sed

sed(Stream Editor)是一种流式文本编辑器,常用于对文本文件进行处理和转换。下面是一些常见的sed经典用法:

  1. 替换文本:
sed 's/old/new/g' file.txt

将文件中所有的 "old" 替换为 "new"。

2.删除行:

sed '/pattern/d' file.txt

删除文件中含有指定模式的行。

3.打印指定行:

sed -n '2,5p' file.txt

打印文件中第2行到第5行的内容。

4.插入行:

sed '3i\new line' file.txt

在文件的第3行之前插入一行新的内容。

5.追加行:

sed '3a\new line' file.txt

在文件的第3行之后追加一行新的内容。

6.使用正则表达式:

sed -E 's/([0-9]+)th/\1/g' file.txt

使用正则表达式进行替换,并引用匹配到的内容。

7.标签和分支:

sed '/pattern/{s/old/new/g; s/foo/bar/g}' file.txt

对含有指定模式的行进行多个替换操作。

8.保存修改到原文件:

sed -i 's/old/new/g' file.txt

在替换操作中使用-i选项,将修改保存到原文件。

以上仅是sed的一些常见用法,实际使用中还可以结合正则表达式、条件判断、变量等进行更复杂的文本处理操作。你可以通过运行man sed命令来查看更详细的文档和帮助。


Awk

awk是一种强大的文本处理工具,用于对文本文件进行分析和处理。它的主要功能包括字符串匹配、提取、替换、计算等。下面是一些常见的awk命令用法:

  1. 打印整行内容:
awk '{print}' file.txt

2.打印指定列:

awk '{print $2}' file.txt

3.使用自定义的分隔符:

awk -F',' '{print $1}' file.txt

4.按条件过滤:

awk '$3 > 10 {print $1}' file.txt

5.计算列的和:

awk '{sum+=$1} END {print sum}' file.txt

6.格式化输出:

awk '{printf "%-10s %5d\n", $1, $2}' file.txt
awk '{printf "%-10s %5d\n", $1, $2}' file.txt

7.使用正则表达式匹配:

awk '/pattern/ {print}' file.txt

8.使用if-else条件判断:

awk '{if($1 > 10) print "Large"; else print "Small"}' file.txt

9.使用循环:

awk '{for(i=1; i<=NF; i++) print $i}' file.txt

10.自定义函数:

awk 'function myfunc(x) {return x*2} {print myfunc($1)}' file.txt

这些是awk的一些常见用法,你可以根据自己的需求进行进一步的学习和实践。

Grep

grep命令是一种用于在文本文件中查找匹配模式的工具。它可以根据用户指定的模式进行搜索,并输出与模式匹配的行。

下面是一些常用的grep命令用法:

  1. 在文件中搜索指定字符串:
grep "pattern" file
例如:grep "hello" file.txt
  1. 在多个文件中搜索:
grep "pattern" file1 file2 file3
例如:grep "error" file1.txt file2.txt file3.txt
  1. 忽略大小写进行搜索:
grep -i "pattern" file
例如:grep -i "hello" file.txt
  1. 显示匹配的行号:
grep -n "pattern" file
例如:grep -n "error" file.txt
  1. 只显示匹配的行数:
grep -c "pattern" file
例如:grep -c "hello" file.txt
  1. 只显示不匹配的行:
grep -v "pattern" file
例如:grep -v "error" file.txt
  1. 只显示匹配的字符串:
grep -o "pattern" file
例如:grep -o "hello" file.txt
  1. 使用正则表达式进行匹配:
grep -E "pattern" file
例如:grep -E "[0-9]{3}" file.txt
  1. 递归搜索目录中的文件:
grep -r "pattern" directory
例如:grep -r "hello" /path/to/directory
  1. 从标准输入中读取数据进行搜索:
command | grep "pattern"
例如:ls -l | grep "file"

这些只是grep命令的一些常见用法,还有更多的选项和功能可供使用。可以通过man grep命令查看完整的grep命令文档。

Cut

cut命令是一个用于从文件或标准输入中提取文本的命令。它可以按列提取文本,并允许你指定分隔符来确定列的边界。下面是一些常用的cut命令用法和示例:

  1. 提取文件中的某一列:
cut -f <列号> <文件名>
示例:
cut -f 2 file.txt  # 提取文件file.txt中的第2列

2.提取文件中的多列:

cut -f <列号1>,<列号2>,... <文件名>

示例:

cut -f 1,3 file.txt  # 提取文件file.txt中的第1列和第3列

3.使用自定义的分隔符提取列:

cut -d <分隔符> -f <列号> <文件名>

示例:

cut -d ',' -f 2 file.csv  # 使用逗号作为分隔符,提取文件file.csv中的第2列

4.提取文件中的某一列的字符范围:

cut -c <起始位置>-<结束位置> <文件名>

示例:

cut -c 1-5 file.txt  # 提取文件file.txt中每行的第1到第5个字符

5.提取文件中的每行的最后几个字符:

cut -c -<字符数> <文件名>

示例:

cut -c -10 file.txt  # 提取文件file.txt中每行的最后10个字符

这些是一些常见的cut命令用法和示例。你可以根据自己的需求来使用cut命令提取文件中的文本。同时,你可以通过运行man cut命令来查看cut命令的完整文档和更多选项。


标签:Cut,grep,pattern,cut,Sed,awk,file,Grep,txt
From: https://blog.51cto.com/u_16228006/7976380

相关文章

  • Transformer-based Encoder-Decoder Models
    整理原链接内容方便阅读https://colab.research.google.com/github/patrickvonplaten/notebooks/blob/master/Encoder_Decoder_Model.ipynbtitle:"Transformer-basedEncoder-DecoderModels"thumbnail:/blog/assets/05_encoder_decoder/thumbnail.pngauthors:user:p......
  • 报错Failed to execute spark task, with exception 'org.apache.hadoop.hive.ql.meta
    在执行hive on spark的时候 上面的错误可能有以下几种问题:1.版本问题 不匹配2.时间参数问题  设置的参数太小了3.在hive-site.xml文件中没有配置spark的home我的问题属于第一个问题导致没有跑成功当时也在想是不是内存出现了问题 ......
  • gzip: stdin: invalid compressed data--format violated
    当执行解压命令,出现tar:Errorisnotrecoverable:exitingnow。tar-zxvfxxx.tar.gz错误详情如下:原因:下载的文件并不是通过gzip过滤归档,去掉-z参数即可,执行:tar-xvfxxx.tar.gz ......
  • You must reset your password using ALTER USER statement before executing this st
    安装mysql-5.7.32数据库时,初次登陆MySQL,执行如下命令获取临时密码,/var/log/mysqld.log为my.cnf中log-error配置项的内容:grep'temporarypassword'/var/log/mysqld.log获取临时密码:!.IRoNewC7xq,执行结果如下: 初次使用临时密码登录MySQL,查看MySQL数据库时......
  • grep console 配色
    FATAL颜色设定"800000"ERROR颜色设定"FF0000"WARN颜色设定"FFFF00"INFO颜色设定"008000"DEBUG颜色设定"51B1A7"TRACE颜色设定"808080"......
  • Codeforces Round 902 (Div. 2, based on COMPFEST 15 - Final Round)
    \(D.EffectsofAntiPimples\)对每个数字能到达的所有位置先预处理最大值,那么就代表选择这个数字之后真实的贡献,那么对这样的预处理值,最小值显然只有一种做法,为\(2^0\),第二小的值应该可以与最小值一起选择,所以答案为\(2^1\),以此类推之后,每个值乘上对应的2的幂次之后求和即......
  • docker exec 报错 decoding init error from pipe caused \"read parent: connection
    复现方法,限制容器内pid个数dockerrun--pids-limit=1000 -dcentossleep100000dockerexec-itidbash  3.执行 foriin $(seq12000);do(sleep100&);done[root@host-226~]#dockerstatseaecCONTAINER      CPU%      ......
  • Paper Reading: Sample and feature selecting based ensemble learning for imbalanc
    目录研究动机文章贡献本文方法基于聚类的分层随机欠采样特征选择样本和特征选择的集成学习基于随机森林的SFSHEL实验结果数据集和实验设置KEEL数据集的比较HeartFailure数据集的比较优点和创新点PaperReading是从个人角度进行的一些总结分享,受到个人关注点的侧重和实力所限......
  • 用友畅捷通 畅捷CRM get_usedspace.php SQL注入漏洞
    漏洞简介畅捷CRMget_userspace.php文件中site_id参数存在SQL注入漏洞漏洞复现fofa语法:icon_hash="-1068428644"登录页面如下:POC:GET/WebSer~1/get_usedspace.php?site_id=-1159%20UNION%20ALL%20SELECT%20CONCAT(0x7178767671,0x5664726e476a637a565a50614d4c435745446a......
  • Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:res
    Failedtoexecutegoalorg.apache.maven.plugins:maven-resources-plugin:3.2.0:resources 一、问题背景在SpringBoot工程编译过程中,出现报错信息:“Failedtoexecutegoalorg.apache.maven.plugins:maven-resources-plugin:3.2.0:resources”。 效果如下: 二、解......