小编smo*_*uns的帖子

是否有类似于 afinfo 的命令用于 Mac OS X 上的视频?

Mac OS X 有afinfo获取音频文件信息的命令。除了命令之外,是否有类似的命令来获取视频 ( .mov, .m4v) 的视频文件信息mdls

video metadata macos

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

过滤顶部命令输出

我正在运行 Mac 并希望过滤top特定进程的命令输出,以便仅显示 PID、COMMAND 和 %CPU 列。

获得进程的PID后,我运行:

top -pid 1234
Run Code Online (Sandbox Code Playgroud)

但是,这会为该过程显示超过 15 列。我可以将“命令”的输出通过管道传输到 awk 并仅显示:

PID COMMAND %CPU
Run Code Online (Sandbox Code Playgroud)

列?

我不想将输出存储在文本文件中然后对其进行处理。我对实时监控流程很感兴趣。

bash awk command-line top macos

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

从 shell 脚本中的 plist 嵌套字典中读取值

我有一个 plist 文件,我对使用 shell 脚本从嵌套字典中获取值很感兴趣。这是我的 plist 文件的结构:

<dict>
    <key>Countries</key>
    <dict>
        <key>USA</key>
        <dict>
            <key>Capital</key>
            <string>Washington DC</string>
            <key>Continent</key>
            <string>North America</string>
        </dict>
        <key>Italy</key>
        <dict>
            <key>Capital</key>
            <string>Rome</string>
            <key>Continent</key>
            <string>Europe</string>
        </dict>
    </dict>
</dict>
Run Code Online (Sandbox Code Playgroud)

如果用户提供国家/地区名称,我有兴趣获取分配给“Capital”键的值。
例如,如果我执行以下命令,我会在“国家/地区”字典下获得完整的数据。

defaults read "/Users/sameerp/Downloads/data" Countries  2>&1   
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

{
    Italy = {
        Capital = Rome;
        Continent = Europe;
    };
    USA = {
        Capital = "Washington DC";
        Continent = "North America";
    };
}
Run Code Online (Sandbox Code Playgroud)

如何修改上面的命令以将“国家”键(例如美国)传递给它并获取“资本”键的值?

shell-script dictionary plist macos

11
推荐指数
1
解决办法
1万
查看次数

根据文件大小过滤 ls 输出

我想ls根据文件大小过滤命令的输出。任何大于 100KB 的 .jpg 或 .png 文件都应在输出中报告。

我已经能够过滤 .png / .jpg 文件,但我无法丢弃任何小于 100KB 的文件。

这是我目前正在使用的:

ls -lah | grep '.png\|.jpg'
Run Code Online (Sandbox Code Playgroud)

任何想法我怎么能做到这一点?

bash command-line ls

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

使用 find 命令排除文件夹

我在findMac 上使用该命令搜索名为test1. 现在test1文件夹也可以存在于.Trash文件夹中。如何排除.Trash搜索结果中报告的文件夹或基本上我希望排除的任何文件夹?

$ find $HOME  -name test1 -type d
/Users/theuser/.Trash/test1
/Users/theuser/test1 
/Users/theuser/Downloads/test1 
Run Code Online (Sandbox Code Playgroud)

我希望结果只是

/Users/theuser/test1
/Users/theuser/Downloads/test1 
Run Code Online (Sandbox Code Playgroud)

我用过grep

find $HOME  -name test1 -type d | grep -v '.Trash' 
Run Code Online (Sandbox Code Playgroud)

过滤掉.Trash结果,但我很想知道find单独使用是否能达到相同的结果。

unix find

6
推荐指数
1
解决办法
4330
查看次数

检查文件是否已经提交给 svn

如何检查文件/文件夹是否已提交给 svn ?我有一个 shell 脚本,我想确保用户为签入选择的文件/文件夹尚未提交。例如,如果我尝试签入已使用的文件夹

svn 添加我的文件夹

我收到以下警告:

svn:警告:“我的文件夹”已经在版本控制之下

svn shell-script

6
推荐指数
1
解决办法
1万
查看次数

进度指示器-掉落的一副牌(Bash)

我以一副落下的纸牌的形式编写了一个进度指示器(我妻子的想法)。

它尚未达到最终形式。这是代码:

vdeck="| | | | | "
hdeck[1]="__ | | | |"
hdeck[2]="__ __ | | |"
hdeck[3]="__ __ __ | |"
hdeck[4]="__ __ __ __ |"
hdeck[5]="__ __ __ __ __"

while true
do
    clear
    echo -n -e "\r$vdeck"
    sleep 0.8

    for i in 1 2 3 4 5
    do
        echo -n -e "\r${hdeck[$i]}"
        sleep 0.2
    done
    clear
done
Run Code Online (Sandbox Code Playgroud)

是否可以在没有 hdeck 数组的情况下优化此代码并获得相同的效果?增加'|' 意味着增加“hdeck”数组组合,这不好。

bash shell-script

5
推荐指数
1
解决办法
342
查看次数

Shell:查找和替换单词

我的 shell 脚本中有一个字符串,它采用固定格式:'[STATUS REPORT] PROJECT'. 当用户执行我的 shell 脚本时,他会被要求提供'PROJECT'.

我想'PROJECT'用用户提供的价值替换这个词。例如,如果'ABCD'是用户输入:

'[状态报告] ABCD'

我有两个问题: 1:如何处理项目名称中的“&”等特殊字符?例如:

echo "[STATUS REPORT] PROJECT" |  awk '{ gsub(/PROJECT/, "A&A"); print }' 
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

[状态报告] APROJECTA

2:我的实际 shell 语句如下所示:

echo "[STATUS REPORT] PROJECT" |  awk '{ gsub(/PROJECT/, $ProjectName); print }'
Run Code Online (Sandbox Code Playgroud)

其中 $ProjectName 存储用户提供的项目名称。但这似乎不起作用

我怎样才能让它正常工作?

bash awk shell-script string-manipulation

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