我想从给定的文本文件中删除所有空格.有没有可用的shell命令?或者,如何sed用于此目的.
我想要下面的东西:
$ cat hello.txt | sed ....
我试过这个:cat hello.txt | sed 's/ //g'.但它只删除空格,而不是标签.
Pau*_*ine 103
$ man tr
NAME
tr - translate or delete characters
SYNOPSIS
tr [OPTION]... SET1 [SET2]
DESCRIPTION
Translate, squeeze, and/or delete characters from standard
input, writing to standard output.
Run Code Online (Sandbox Code Playgroud)
为了擦除包括换行符在内的所有空格,您可以尝试:
cat file.txt | tr -d " \t\n\r"
Run Code Online (Sandbox Code Playgroud)
您还可以使用tr定义的字符类(对htompkins注释的信用):
cat file.txt | tr -d "[:space:]"
Run Code Online (Sandbox Code Playgroud)
例如,为了擦除水平空白区域:
cat file.txt | tr -d "[:blank:]"
Run Code Online (Sandbox Code Playgroud)
小智 16
我的观点更为简单:
sed -r 's/\s+//g' filename
Run Code Online (Sandbox Code Playgroud)
小智 11
我认为你可以使用sed来消除空间,同时不会丢失一些信息,比如换到另一条线.
cat hello.txt | sed '/^$/d;s/[[:blank:]]//g'
Run Code Online (Sandbox Code Playgroud)
尝试这个:
sed -e 's/[\t ]//g;/^$/d'
Run Code Online (Sandbox Code Playgroud)
(在这里找到)
第一部分删除所有制表符(\t)和空格,第二部分删除所有空行
小智 5
这个答案与其他答案类似,但是由于有些人一直抱怨输出到 STDOUT,我只是建议将其重定向到原始文件并覆盖它。我通常不会建议这样做,但有时又快又脏。
cat file.txt | tr -d " \t\n\r" > file.txt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
234404 次 |
| 最近记录: |