标签: whitespace

如何计算文件中空白字符的数量?

我想计算文件中空白字符的数量。我能想到的最好的办法是:

tr -cd [:space:] < my_file | wc
Run Code Online (Sandbox Code Playgroud)

有更简洁的方法吗?

whitespace wc

4
推荐指数
1
解决办法
7655
查看次数

如何对文件名中的空格进行排序并连接文件?

我不幸地处理了包含空格的文件名。我想连接文件名包含空格的文件。我还想按数字对文件名进行排序。显然以下失败:

cat $(ls *.sql | sort -n)
Run Code Online (Sandbox Code Playgroud)

因为foo bar.sql作为两个参数传递给cat. 这里通常的方法是什么?

bash zsh filenames whitespace cat

3
推荐指数
1
解决办法
1768
查看次数

此处缩进的文档会导致语法错误

我的 shell 脚本中有以下代码片段,并且有一个错误,尽管进行了一些研究,但我似乎无法确定原因。当我运行如下代码时,脚本退出并显示一条消息

./my_script.sh:  line 53: syntax error at line 61: `<<' unmatched
Run Code Online (Sandbox Code Playgroud)

我已经使用过set -x并且可以看到在出现错误之前一切都很好(无论如何我只设置了变量)。出于某种原因,只需从eot允许它工作之前删除空格(它们是空格而不是非显示字符)。它让我的 xml 看起来有点不对齐但功能正常。有谁知道为什么会发生这种情况,因为我不喜欢这样的事情,我无法解释,我希望我的 xml 看起来也很漂亮。

这是脚本的相关部分:

# ... various environment variables set here ...

clean_files()          # line 53
{
    # Clear up the intermediate files
    mv $datafile $ARCHIVE_DIR/$(basename $datafile).$$
}

xmlfile_header()
{                      # line 60
        cat <<- eot
                <?xml version="1.0" encoding="UTF-8" ?>
                <ppllist>
        eot  
}

# ... more stuff ...
Run Code Online (Sandbox Code Playgroud)

ksh shell-script whitespace here-document

3
推荐指数
1
解决办法
847
查看次数

将带有空格和引号的参数传递给脚本(不引用所有内容)

以下内容在命令行上效果很好:

$ ffmpeg -i input.m4a -metadata 'title=Spaces and $pecial char'\''s' output.m4a
Run Code Online (Sandbox Code Playgroud)

如何参数化此命令并在脚本/函数中使用它?我想添加多个元数据标签,如下所示:

$ set-tags.sh -metadata 'tag1=a b c' -metadata 'tag2=1 2 3'
Run Code Online (Sandbox Code Playgroud)

更新:

我把我的问题简化得有点太多了。我实际上想调用一个脚本,该脚本使用其中的参数化命令来调用脚本。

这是我的确切用例:

此函数将文件转换为有声读物格式(在 .profile 中定义):

# snippet of .profile
convert_to_m4b () {
    FILE="$1"
    BASENAME=${FILE%.*}; shift

    ffmpeg -i "$FILE" -vn -ac 1 -ar 22050 -b:a 32k "$@" tmp.m4a &&
    mv tmp.m4a "$BASENAME.m4b"
}; export -f convert_to_m4b
Run Code Online (Sandbox Code Playgroud)

函数convert_to_m4b是从download-and-convert.sh中调用的:

#/bin/sh
 MP3_URL=$1; shift
FILENAME=$1; shift

if [ ! -f "${FILENAME}.mp3" ]; then
    curl --location --output "${FILENAME}.mp3" "$MP3_URL"
fi

convert_to_m4b "${FILENAME}.mp3" "$@" …
Run Code Online (Sandbox Code Playgroud)

shell-script quoting function whitespace arguments

3
推荐指数
1
解决办法
6232
查看次数

使用 grep 过滤后,是否有在终端中重新对齐表格数据的技巧?

我得到的很好的例子:

  • 尝试ss -axl显示正在侦听的 UNIX 域套接字。例如,这可能会给出:

      Netid     State      Recv-Q     Send-Q                                                                Local Address:Port              Peer Address:Port     
      u_str     LISTEN     0          0                                                              /run/systemd/private 9683                         * 0        
      u_str     LISTEN     0          0                                                        /run/systemd/fsck.progress 9690                         * 0        
      u_str     LISTEN     0          0                                                       /run/systemd/journal/stdout 9705                         * 0        
      u_str     LISTEN     0          0                                                   /var/run/dbus/system_bus_socket 13830                        * 0        
      u_str     LISTEN     0          0                                                                   /run/thd.socket 13833                        * 0        
      u_str     LISTEN     0          0                                                              /var/run/docker.sock 13835                        * 0        
      u_str     LISTEN     0          0                                                          /run/avahi-daemon/socket 13837                        * 0        
      u_str     LISTEN     0          0                                                    /run/user/1000/systemd/private 16088                        * 0        
      u_str …
    Run Code Online (Sandbox Code Playgroud)

whitespace columns text-formatting

3
推荐指数
1
解决办法
72
查看次数

替换命令行参数同时保留空格

我想有选择地替换正在传递的命令行参数,以自动格式化它以适应正在执行的下游命令。论证会有空格,这就是争论的焦点。

我目前正在这样做:

set -- $(echo $* | sed -e "s/$_ARG/--description=\"$_ID - $_SUMMARY\"/")
Run Code Online (Sandbox Code Playgroud)

新的论点--description="$_ID - $_SUMMARY"被分裂了。

我运行下游命令:

<cmd> "$@"
Run Code Online (Sandbox Code Playgroud)

我可能有任意数量的参数,但示例用例是:

activity --description='handle null'
Run Code Online (Sandbox Code Playgroud)

到:

activity --description='$SOME_VARIABLE - handle null'
Run Code Online (Sandbox Code Playgroud)

最终,当我运行下游命令时,即使使用“$@”,它也已经在那里分割,所以它不能按我的预期工作。它最终就像

activity --description=value - handle null
Run Code Online (Sandbox Code Playgroud)

--description=value-handlenull然后被视为单独的参数。

shell options whitespace

3
推荐指数
2
解决办法
1664
查看次数

使用“查找”进行递归搜索和删除

我想搜索其中包含名称 libre 的文件,然后删除它们。我在这里完成了一半并且找不到删除文件的可靠方法,尤其是当文件名中有空格时。

find -iname *libre*
Run Code Online (Sandbox Code Playgroud)

这将搜索文件,但假设一个文件是“Libre Office Word”,现在它有空格,你能指导如何删除这些文件吗?

find rm whitespace

2
推荐指数
1
解决办法
2195
查看次数

如何在命令输出末尾添加带空格的字符串

我想在ls命令输出的每一行末尾添加一个带空格的字符串。

#!/bin/sh
STRING_WITH_SPACES="this should be at the end of output"
ls -lh | sed 's|$| '$STRING_WITH_SPACES'|'
Run Code Online (Sandbox Code Playgroud)

$STRING_WITH_SPACES没有空格时,上面的脚本工作正常:

-rw-r--r-- 1 me users 0 May  4 14:55 testfile thisshouldbeattheend
Run Code Online (Sandbox Code Playgroud)

但是,当$STRING_WITH_SPACESsed 中有空格时会抱怨:

sed: -e expression #1, char 9: unterminated `s' command
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

sed string whitespace

2
推荐指数
1
解决办法
6033
查看次数

带有空格的文件中的 Grep 行

我有包含记录的文件

qwe.google.com IN A 1.1.1.1
qwe.google.com   IN {uneven-space} A{space}1.1.1.1
qwe.google.com  IN     CNAME      asd.google.com
Run Code Online (Sandbox Code Playgroud)

我需要 grep 包含的所有行IN A,因为它之间包含不均匀的空间,我无法这样做。

linux grep whitespace pcregrep

2
推荐指数
1
解决办法
1126
查看次数

如何计算文本中的空格?

在以下示例中,inet 前有 4 个空格。

wolf@linux:~$ ip address show eth0 | grep 'inet '
    inet 10.10.10.10/24 brd 10.10.10.255 scope global dynamic eth0
wolf@linux:~$ 
Run Code Online (Sandbox Code Playgroud)

我如何计算这个例子中的空格数。

这个示例很简单,因为它只有 4 个空格。

如果它有更多呢?几百,几千?

是否有捷径可寻?

whitespace

2
推荐指数
2
解决办法
1326
查看次数