UNIX:使用tr删除空行



我见过它是用sed完成的(如果你愿意写下如何用sed完成它并解释它背后的regex,我也会很感激(,但我想知道如何用tr.完成它

我的想法是:cat file|tr -d ^'n'^n,但第一个删除了每个"\n",第二个没有。

另一个解决方案是grep . file

tr在linux上至少可以压缩重复字符:

echo -ne $a
the quick
brown fox
jumps over
echo -ne $a |tr -s 'n'
the quick
brown fox
jumps over

tr操作字符流,而不是行流(这是sed、awk和whatnot的默认值(。-d标志将删除字符列表中的任何字符。tr -d 'n'将删除流中的所有换行符。

我自己也不确定你是否可以使用tr.删除空行

使用sedsed '/^$/d'^匹配前线。$匹配行的末尾d表示您希望sed删除与之匹配的任何内容。然而,这类问题在其他地方得到了更全面的回答,所以我会回到谷歌,找到一个全面的sed或unix教程。

trtranslate的缩写。它是将一组字符转换为另一组字符。这与从文件中删除空行无关,还有其他几种工具可以做到这一点(例如sed、awk、grep(。

使用强制POSIX工具删除空行的简单方法有:

grep '.' file
grep -v '^$' file
sed -n '/./p' file
sed '/^$/d' file
awk '/./' file
awk '!/^$/' file
awk '$0 != ""' file
awk 'length($0) != 0' file

最新更新