您的位置:首页 > 房产 > 建筑 > tr,cut,diff(数据处理

tr,cut,diff(数据处理

2024/10/7 15:40:56 来源:https://blog.csdn.net/2301_79140115/article/details/141726734  浏览:    关键词:tr,cut,diff(数据处理

tr 命令

功能:

tr 命令用于转换或删除文件中的字符。

语法:

格式:

tr [-cdst][--help][--version][第一字符集][第二字符集]  
tr [OPTION]…SET1[SET2] 

标识符:

-d:删除指定的字符。-s:压缩重复的字符为一个字符。

具体应用:

# 1. 将文件内容全部转换为大写
cat 1.txt | tr a-z A-Z
cat 1.txt | tr [:lower:] [:upper:]# 2. 将文件内容全部转换为小写
cat 1.txt | tr A-Z a-z
cat 1.txt | tr [:upper:] [:lower:]# 3. 删除文件中的数字
cat 2.txt | tr -d 0-9# 4. 生成包含大小写字母、数字、特殊字符的随机字符串
< /dev/urandom tr -dc a-zA-Z0-9-/ | head -c 12; echo# 5. 删除重复的 '0'
cat 2.txt | tr -s 0# 6. 将路径变量中的冒号替换为换行符
echo $PATH | tr ':' '\n'# 7. 删除文件中的换行符
cat 2.txt | tr -d '\n'# 8. 删除Windows文件中的 '^M' 字符
cat file | tr -d '\r'# 9. 转换指定字符串(要求相同长度)
cat 1.txt | tr 'Who' 'Why'

 cut命令

功能: 

cut命令用于显示每行从开头算起 num1 到 num2 的文字。

语法:

格式:

cut  [-bn] [file]
cut [-c] [file]
cut [-df] [file]

标识符:

# 以字节为单位切割(可能会破坏多字节字符)
cut -b 1-3 filename# 以字符为单位切割(适合处理多字节字符)
cut -c 1-3 filename# 使用自定义分隔符切割(例如逗号分隔的字段)
cut -d ',' -f 2 filename# 防止 -b 破坏多字节字符(跳过被破坏的字符)
cut -b 1-3 -n filename

diff命令

功能:

diff 命令用于比较文件的差异

语法:

标识符:

# `diff` 用于比较文件或目录的差异。
# 常用选项:
# - `-u`:显示统一格式的差异。
# - `-q`:仅显示文件是否不同。
# - `-r`:递归比较目录。
# - `--side-by-side`:并排显示差异。# 自定义格式:
# - `--old-group-format=FORMAT`:指定旧文件差异的格式。
# - `--new-group-format=FORMAT`:指定新文件差异的格式。
# - `--unchanged-group-format=FORMAT`:指定未更改部分的格式(为空字符串表示不显示未更改部分)。

具体应用: 

# 1. 显示文件差异,类似于统一格式
diff -u <(cat a.txt) <(cat whole.txt)# 示例输出:
# --- /dev/fd/63
# +++ /dev/fd/62
# @@ -1,4 +1,7 @@
#  apple
#  banana
#  cherry
#  date
# +elderberry
# +fig
# +grape# 2. 并排显示两个文件的差异
diff --side-by-side <(cat a.txt) <(cat whole.txt)# 示例输出:
# apple                       | apple
# banana                      | banana
# cherry                      | cherry
# date                        | date
#                            > elderberry
#                            > fig
#                            > grape

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com