tr 命令 - 如何将字符串“”替换为实际换行符 ()



我想使用 tr 命令将字符串 " n" 的所有出现替换为新行 ( n )。

我尝试了tr '\n' 'n'但这似乎与任何""和任何"n"相匹配

以下是使用 sed 的方法:

sed 's/\n/n/g'

用法示例:

就地替换文件中出现的所有n

sed -i 's/\n/n/g' input_filename

替换通过管道出现的所有n,并保存到另一个文件中

cat file1 file2 file3 file4 | sed 's/\n/n/g' > output_file

Perl 解决方案类似于 sampson-chen 的 sed 解决方案:

perl -pe 's/\n/n/g'

例子:

带有文本 (不是换行符)的输入文件:

$ cat test1.txt          
foonbarnnbaz

实际换行符替换所有出现的n,打印成STDOUT

$ perl -pe 's/\n/n/g' test1.txt
foo
bar
baz
同样,就

地更改输入文件,将备份保存到test1.txt.bak

$ perl -i.bak -pe 's/\n/n/g' test1.txt

Perl 单行代码使用这些命令行标志:
-e:告诉Perl在内联中查找代码,而不是在file.
中查找代码 -p :一次循环一行输入,默认情况下将其分配给$_。在每次循环迭代后添加print $_.
-i.bak:就地编辑输入文件(覆盖输入文件)。在覆盖之前,通过将扩展名.bak附加到原始文件的名称来保存原始文件的备份副本。

另请参阅:
perldoc perlrun:如何执行Perl解释器:命令行开关
perldoc perlre : Perl 正则表达式 (正则表达式)

我有一个类似的问题,我想在 Mac BigSur 上用新行替换""

输入:

-----BEGIN CERTIFICATE-----\nMIGcz......naLRn\nyxiJdo=\n-----END CERTIFICATE-----

预期产出:

-----BEGIN CERTIFICATE-----
MIGcz......
aLRn
yxiJdo=
-----END CERTIFICATE-----

Sed,perl没有为我工作。但是一个简单的"tr"命令很有用。

echo -----BEGIN CERTIFICATE-----\nMIGcz......\naLRn\nyxiJdo=\n-----END CERTIFICATE----- | tr '' 'n'

相关内容

  • 没有找到相关文章

最新更新