UNIX:使用 tr 删除空行
UNIX: using tr to delete empty lines
我已经看到它是使用 sed 完成的(如果你愿意写下如何在 sed 中完成它并解释它背后的正则表达式,我也会很感激),但我想知道如何使用 tr.
我的想法是:cat file|tr -d ^'\n'
或^\n
,但第一个删除每个'\n',第二个none。
tr 对字符流进行操作,而不是对行流进行操作(这是 sed 和 awk 等的默认设置)。 -d 标志删除字符列表中的任何字符。 tr -d '\n'
将删除流中的所有换行符。
我自己不确定是否可以使用 tr 删除空行。
使用 sed sed '/^$/d'
。 ^
匹配行首。 $
匹配行尾 d
表示您希望 sed 删除任何匹配的内容。然而,这类问题在其他地方得到了更全面的回答,所以我会回到 google 并找到一个全面的 sed 或 unix 教程。
tr on linux,至少,可以压缩重复字符:
echo -ne $a
the quick
brown fox
jumps over
echo -ne $a |tr -s '\n'
the quick
brown fox
jumps over
另一个解决方案是grep . file
。
tr
是 translate 的缩写。它是将一组字符转换为另一组字符。这与从文件中删除空行无关,您可以使用其他几种工具(例如 sed、awk、grep)。
使用强制POSIX工具删除空行的简单方法是:
grep '.' file
grep -v '^$' file
sed -n '/./p' file
sed '/^$/d' file
awk '/./' file
awk '!/^$/' file
awk '[=10=] != ""' file
awk 'length([=10=]) != 0' file
我已经看到它是使用 sed 完成的(如果你愿意写下如何在 sed 中完成它并解释它背后的正则表达式,我也会很感激),但我想知道如何使用 tr.
我的想法是:cat file|tr -d ^'\n'
或^\n
,但第一个删除每个'\n',第二个none。
tr 对字符流进行操作,而不是对行流进行操作(这是 sed 和 awk 等的默认设置)。 -d 标志删除字符列表中的任何字符。 tr -d '\n'
将删除流中的所有换行符。
我自己不确定是否可以使用 tr 删除空行。
使用 sed sed '/^$/d'
。 ^
匹配行首。 $
匹配行尾 d
表示您希望 sed 删除任何匹配的内容。然而,这类问题在其他地方得到了更全面的回答,所以我会回到 google 并找到一个全面的 sed 或 unix 教程。
tr on linux,至少,可以压缩重复字符:
echo -ne $a
the quick
brown fox
jumps over
echo -ne $a |tr -s '\n'
the quick
brown fox
jumps over
另一个解决方案是grep . file
。
tr
是 translate 的缩写。它是将一组字符转换为另一组字符。这与从文件中删除空行无关,您可以使用其他几种工具(例如 sed、awk、grep)。
使用强制POSIX工具删除空行的简单方法是:
grep '.' file
grep -v '^$' file
sed -n '/./p' file
sed '/^$/d' file
awk '/./' file
awk '!/^$/' file
awk '[=10=] != ""' file
awk 'length([=10=]) != 0' file