■ grep
命令 | 描述 |
---|---|
grep "pattern" file.txt | 在 file.txt 中搜索 "pattern"。 |
grep -i "pattern" file.txt | 忽略大小写搜索 "pattern"。 |
grep -n "pattern" file.txt | 显示匹配行的行号。 |
grep -r "pattern" /path/to/directory | 递归搜索指定目录。 |
grep "regex_pattern" file.txt | 使用正则表达式搜索。 |
grep -v "pattern" file.txt | 查找不包含 "pattern" 的行。 |
grep -c "pattern" file.txt | 显示匹配的行数。 |
grep "pattern" file1.txt file2.txt | 同时搜索多个文件。 |
grep -A 2 -B 2 "pattern" file.txt | 显示匹配行的上下文行。 |
grep "pattern" * | 在当前目录中的所有文件中搜索 "pattern"。 |
■ sed
sed 命令的一些常见用法,用于替换、删除、追加文本等文本编辑操作。
sed 是一种强大的文本处理工具,可以根据需要进行高度定制。
命令 | 描述 | 示例 |
---|---|---|
sed 's/old/new/' file.txt | 替换文本文件中的第一个匹配行的 "old" 为 "new"。 | sed 's/apple/orange/' fruits.txt |
sed 's/old/new/g' file.txt | 替换文本文件中所有匹配行的 "old" 为 "new"。 | sed 's/apple/orange/g' fruits.txt |
sed '2s/old/new/' file.txt | 仅替换文件中的第2行匹配的 "old" 为 "new"。 | sed '2s/apple/orange/' fruits.txt |
sed '1,3s/old/new/' file.txt | 替换文件中第1行到第3行的匹配的 "old" 为 "new"。 | sed '1,3s/apple/orange/' fruits.txt |
sed '/pattern/s/old/new/' file.txt | 仅替换包含 "pattern" 的行中的 "old" 为 "new"。 | sed '/apple/s/red/g' fruits.txt |
sed '/pattern/!s/old/new/' file.txt | 仅替换不包含 "pattern" 的行中的 "old" 为 "new"。 | sed '/apple/!s/red/g' fruits.txt |
sed 's/old/new/g' file.txt > newfile.txt | 将替换后的文本写入新文件。 | sed 's/apple/orange/g' fruits.txt > newfruits.txt |
sed -i 's/old/new/g' file.txt | 原位编辑(直接修改源文件)并替换 "old" 为 "new"。 | sed -i 's/apple/orange/g' fruits.txt |
sed '/^#/d' file.txt | 删除文件中以 "#" 开头的行。 | sed '/^#/d' config.txt |
sed '/pattern/r file2.txt' file1.txt | 将 file2.txt 中的内容附加到包含 "pattern" 的行。 | sed '/apple/r fruits.txt' drinks.txt |
■ awk
awk 命令的一些常见用法,用于处理结构化文本数据、计算、过滤、替换和输出。awk 是一个强大的文本处理工具,可以根据需要进行高度定制。
命令 | 描述 | 示例 |
---|---|---|
awk '{print $1}' file.txt | 打印每行的第一个字段(默认字段分隔符为空格)。 | awk '{print $1}' data.txt |
awk '/pattern/' file.txt | 打印包含 "pattern" 的行。 | awk '/apple/' fruits.txt |
awk '{print NF}' file.txt | 打印每行的字段数(NF 表示字段数)。 | awk '{print NF}' data.txt |
awk -F':' '{print $1}' file.txt | 指定字段分隔符为冒号(:)并打印第一个字段。 | awk -F':' '{print $1}' passwd.txt |
awk '{sum+=$1} END {print sum}' file.txt | 计算第一个字段的总和并打印。 | awk '{sum+=$1} END {print sum}' numbers.txt |
awk '$3 >= 50 {print $1, $3}' file.txt | 打印第一个和第三个字段,如果第三个字段大于等于 50。 | awk '$3 >= 50 {print $1, $3}' scores.txt |
awk '/pattern/ {count++} END {print count}' file.txt | 统计包含 "pattern" 的行数。 | awk '/apple/ {count++} END {print count}' fruits.txt |
awk '{gsub("old", "new"); print}' file.txt | 替换所有行中的 "old" 为 "new" 并打印。 | awk '{gsub("apple", "orange"); print}' fruits.txt |
awk -v var="value" '{print var, $1}' file.txt | 使用变量值在输出中插入数据。 | awk -v fruit="apple" '{print fruit, $1}' fruits.txt |
awk 'NR > 1' file.txt | 打印除了第一行以外的所有行。 | awk 'NR > 1' data.txt |