shell 删除行首的所有空格

yhxst69z  于 2023-02-09  发布在  Shell
关注(0)|答案(6)|浏览(375)

你好。我有一个这种格式的文件,每行开头有很多空格,我想从开头删除这些空格,并使用awk或sed打印所有字段。
结果:

guicsvcw

guicsvcw1#

可以使用此sed命令删除前导空格(空格或制表符)

sed 's/^[ \t]*//' file

使用sed -i在位修改文件。

mnemlml8

mnemlml82#

你甚至可以使用POSIX字符类[:space:]来处理所有的空格(\t\r\n\v等):

sed 's/^[[:space:]]*//g' file
r1wp621o

r1wp621o3#

sed命令

sed 's/^ *//'

应该行得通。
说明:^表示行首,*表示零个或多个空格。这些空格将被空替换。

q3qa4bjr

q3qa4bjr4#

使用awk命令,

bash-3.2$ cat input
      1 147.31.124.135
      1 147.31.9.135
      1 147.32.123.135
      1 147.32.123.136
      1 147.32.124.135
      1 77.236.192.69
      1 86.49.86.108
      1 86.49.86.109
bash-3.2$ awk 'sub(/^ */, "")' input
1 147.31.124.135
1 147.31.9.135
1 147.32.123.135
1 147.32.123.136
1 147.32.124.135
1 77.236.192.69
1 86.49.86.108
1 86.49.86.109
xuo3flqw

xuo3flqw5#

以下命令可用于删除输入文件每行中的所有前导白色:

sed 's/^ *//' < inputfile > outputfile

此命令使用sed对输入文件的每一行执行搜索和替换操作。搜索模式^ * 匹配每行开头(由^指示)的零个或多个空格(由 * 指示)。替换模式(空字符串'')删除匹配的空格。结果将写入输出文件,如果未指定输出文件,则写入终端。
(ChatGPT解答)

zc0qhyus

zc0qhyus6#

您甚至可以使用POSIX character class [:space:]来处理所有空格(\t,\r,\n,\v等):您甚至可以使用POSIX character class [:space:]来处理所有空格(\t,\r,\n,\v等):
sed的/^:空格:*//g'文件

相关问题