Bash脚本学习:AWK, SED

1. AWK

AWK 是一种编程语言,设计用于处理文件或数据流中基于文本的数据,或者使用 shell 管道。 可以将 awk 与 shell 脚本结合使用或直接在 shell 提示符下使用。
Bash脚本学习:AWK, SED_第1张图片

  • 以上展示使用AWK分别打印第一个位置变量和第二个位置变量。

建立一个文档 csvtest.csv。
文档内容为:
one, two, three

awk -F, '{print $1}' csvtest.csv

输出为:one

  • 提取并打印每一行的第一个字段
  • -F,:这是awk命令的选项,用于指定字段分隔符。在这里,-F, 表示字段之间使用逗号,作为分隔符,因为CSV文件中通常使用逗号来分隔不同的字段。
echo "Just get this word: Hello" | awk '{print $5}'
  • 以上打印第5个字段,即是"Hello"。
echo "Just get this word: Hello" | awk -F: '{print $2}' | cut -c2-
  • -F:选项指定了字段分隔符为冒号:,然后’{print $2}'表示打印第二个字段。
  • cut -c2-:最后,cut命令被用于删除输出中的第一个字符(即空格)。-c2-选项表示从第二个字符开始截取到末尾,因此最终的输出是:“Hello”。
 echo "Just get this word: Hello" | awk -F: '{print $2}' | cut -c2
  • cut -c2:最后,cut命令被用于提取输出中的第二个字符,即字母"H"。-c2选项表示提取第二个字符。

2. SED

Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
在sedtest.txt文本中,输入文件内容:
The fly flies like no fly flies.
A fly is an insect that has wings and a fly likes to eat leftovers.

在指令行:

sed 's/fly/grasshopper/g' sedtest.txt

输出为:
The grasshopper flies like no grasshopper flies.
A grasshopper is an insect that has wings and a grasshopper likes to eat leftovers.

  • 以上使用s/old_text/new_text/g的编辑格式,其中old_text是要查找的文本,new_text是要替换成的文本,而g表示全局匹配,即查找并替换每个匹配的实例。在这个命令中,它将所有出现的"fly"替换为"grasshopper"。
sed -i.ORIGINAL 's/fly/grasshopper/g' sedtest.txt
  • -i.ORIGINAL:这是sed命令的选项,它表示进行原地编辑,并且将原始文件备份为.ORIGINAL的扩展名。这意味着在编辑文件之前,sed会先创建一个备份文件,以防止意外的数据损坏。

所以现在有两个文件:
① sedtest.txt.ORIGINAL
The fly flies like no fly flies.
A fly is an insect that has wings and a fly likes to eat leftovers.

② sedtest.txt
The grasshopper flies like no grasshopper flies.
A grasshopper is an insect that has wings and a grasshopper likes to eat leftovers.

你可能感兴趣的:(bash,bash,开发语言)