tr是Linux和Unix系统中的命令行程序,可转换,删除和压缩标准输入的字符,并将结果写入标准输出。
tr
命令通常通过管道与其他命令组合使用,并且可以执行删除重复字符,将大写转换为小写以及基本字符替换和删除的操作。
在本教程中,我们将向你展示如何使用tr
命令去除空行,以及说明tr
命令的选项。
tr命令选项
tr
命令的语法形式是tr OPTION... SET1 [SET2]
。OPTION
选项是必须的参数,SET
是字符集合,可以是一个多个字符集合。
tr
命令默认接受具有相同长度的两组字符,并用第二组中字符集合替换第一组存在的字符集合。
例如命令echo 'myfreax' | tr 'myf' 'red'
将m
替换为r
,y
替换为e
,将f
替换为d
。
echo 'myfreax' | tr 'myf' 'red'
redreax
-s
/--squeeze-repeats
选项使用最后一个字符集合替换重复出现的字符。命令echo "GNU \ Linux" | tr -s ' '
删除重复出现的空格字符。
在指定第二个字符集合时,首先使用第一个字符集合替换字符串GNU \ Linux
,然后使用第二个字符集合替换第一个字符集合。
echo "GNU \ Linux" | tr -s ' ' #GNU \ Linux
echo "GNU \ Linux" | tr -s ' ' '_' #GNU_\_Linux
这里列出的选项仅用于帮助你理解如何使用tr命令删除空格,要学习更多,阅读我们的教程Linux tr命令实例教程。
tr 命令删除空行
由于tr命令仅接受标准输入,因此必须使用标准输入重定向符号<
,将标准输入的键盘替换为文件。
tr
命令的-s
选项表示使用最后一个字符集合替换重复出现的字符。换行符号在单行中会被以为是重复字符串。
tr -s '\n'
组合就是替换重复的换行符,由于命令没有指定第二个字符集合,因此没有字符替换。
最后> new_file.txt
就是将tr命令的标准输出重定向到文件new_file.txt
。
tr -s '\n' < file.txt > new_file.txt