Linux中用制表符替换空格
如何在 Linux 中将给定文本文件中的空格替换为制表符?
How do I replace whitespaces with tabs in linux in a given text file?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如何在 Linux 中将给定文本文件中的空格替换为制表符?
How do I replace whitespaces with tabs in linux in a given text file?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(11)
使用 unexpand(1) 程序
Use the unexpand(1) program
您可以尝试使用 awk
或 SED
我认为如果您更喜欢tr
或 Sam Bisbee 建议的 tr 解决方案的简化版本,
I think you can try with awk
or SED if you preffer
or even tr
or a simplified version of the tr solution sugested by Sam Bisbee
使用 Perl:
Using Perl:
更好的 tr 命令:
这将清理 unzip -l 的输出,以便使用 grep、cut 等进一步处理,
例如,
better tr command:
This will clean up the output of say, unzip -l , for further processing with grep, cut, etc.
e.g.,
将当前目录下的每个 .js 文件转换为制表符的示例命令(仅转换前导空格):
Example command for converting each .js file under the current dir to tabs (only leading spaces are converted):
下载并运行以下脚本,以递归方式将纯文本文件中的软选项卡转换为硬选项卡。
从包含纯文本文件的文件夹内放置并执行脚本。
Download and run the following script to recursively convert soft tabs to hard tabs in plain text files.
Place and execute the script from inside the folder which contains the plain text files.
这会将连续的空格替换为一个空格(但不是制表符)。
这将用制表符替换连续的空格。
This will replace consecutive spaces with one space (but not tab).
This will replace consecutive spaces with a tab.
使用sed:
或
Using sed:
or
您还可以使用
astyle
。我发现它非常有用,而且它也有几个选项:You can also use
astyle
. I found it quite useful and it has several options too:如果您正在谈论用制表符替换一行上的所有连续空格,则
tr -s '[:blank:]' '\t'
。如果您正在谈论替换所有空白(例如空格、制表符、换行符等),则
tr -s '[:space:]'
。如果您正在讨论修复选项卡损坏的文件,请使用其他答案中提到的
expand
和unexpand
。If you are talking about replacing all consecutive spaces on a line with a tab then
tr -s '[:blank:]' '\t'
.If you are talking about replacing all whitespace (e.g. space, tab, newline, etc.) then
tr -s '[:space:]'
.If you are talking about fixing a tab-damaged file then use
expand
andunexpand
as mentioned in other answers.例如,这将减少制表符的数量……或将空格减少到一个制表符中。
您还可以针对将多个空格/制表符合并到一个空格的情况执行此操作:
This will for example reduce the amount of tabs.. or spaces into one single tab.
You can also do it for situations of multiple spaces/tabs into one space: