我正在按以下方式执行输出(带有附加参数--version
) :find
$ find NDK -name clang -executable -type f | xargs -I{} bash -c "exec {} --version"
Android (7714059, based on r416183c1) clang version 12.0.8
确实有效。不过,这种方法可能不是最优的。
有没有正确/最佳的方法来做到这一点?
我正在按以下方式执行输出(带有附加参数--version
) :find
$ find NDK -name clang -executable -type f | xargs -I{} bash -c "exec {} --version"
Android (7714059, based on r416183c1) clang version 12.0.8
确实有效。不过,这种方法可能不是最优的。
有没有正确/最佳的方法来做到这一点?
在以下情况下basename "$x"
和的输出echo "${x##*/}"
没有区别:
$ x=xxx/yyy ; basename "$x" ; echo "${x##*/}"
yyy
yyy
在哪些情况下(如果有的话)basename "$x"
和的输出echo "${x##*/}"
不同?
bash 是否支持语句中的变量替换return
?
从man bash
:
return [n]
Causes a function to stop executing and return the value specified by n to its caller.
是否n
允许变量替换?
我根据以下示例进行了测试:
$ cat t345.sh
f()
{
local x=13
return $x
}
f
echo $?
$ bash t345.sh
13
$ bash --version
GNU bash, version 5.2.21(1)-release (x86_64-pc-cygwin)
这里我们看到 Bash 没有抱怨return $x
并f
返回 13。
它一直都是这样吗?或者从哪个版本的 Bash 开始支持这一点?
xxx<1+ whitespaces>"
我试图匹配和之间的任何字符(换行符除外)whitespace
。
输入字符串的格式如下:
xxx<1+ whitespaces>"yyy<1+ whitespaces>zzz"
我尝试使用以下 PCRE:
$ echo 'xxx "yyy zzz"' | grep -Po '(?<=\xxx\s+").*?(?=\s)'
grep: lookbehind assertion is not fixed length
然而,正如我们所看到的,PCRE 不支持浮动lookbehind,因为它可能会导致重大的性能问题。
这是解决方法:
$ echo 'xxx "yyy zzz"' | grep xxx | grep -Po '(?<=").*?(?=\s)'
yyy
在这里我们看到它可以工作,但是grep
被调用了两次,这可能被认为是次优的。
是否有可能仅通过一次调用就获得相同的结果grep
?
如果不是,那么是否可以实现相同的结果,但只需一次<toolname>
(也许awk
)调用?
我正在尝试运行包含字符串变量中的字符串变量的命令:
$ X="bash -c 'echo OK'" ; $X
OK': -c: line 1: unexpected EOF while looking for matching `''
为什么不起作用?如何正确修复/做它?
请注意,我需要将命令运行为$X
.
请注意,我需要echo OK
通过运行bash -c
。
从man grep
:
-o, --only-matching
Print only the matched (non‐empty) parts of a matching line, with each such part on a separate output line.
一个简单的问题:如何仅打印匹配行的匹配(非空)部分,并且每个此类部分都在同一输出行上?
考虑这种情况:
$ x=y
$ echo $x
y
$ x=@
$ echo $x
<newline>
如果是,为什么 echo$x
打印换行符?x
@
我有.avi
文件:
$ ffprobe input.avi -hide_banner
Input #0, avi, from 'input.avi':
Duration: 00:01:08.05, start: 0.000000, bitrate: 182785 kb/s
Stream #0:0: Video: rawvideo, bgr24, 1060x615, 182915 kb/s, 20 fps, 20 tbr, 20 tbn
$ file input.avi
input.avi: RIFF (little-endian) data, AVI, 1060 x 615, 20.00 fps, video: uncompressed
在这里我们看到“rawvideo, bgr24”。
我已经尝试了多次 ffmpeg 调用,但要么.mp4
无法在 Windows 10 照片应用程序中播放:
注意:但是,VLC 播放得很好.mp4
。
一个简单的问题:如何将包含“rawvideo, bgr24”的内容正确转换.avi
为.mp4
(以便在任何播放器中都能正确播放)?
我有 Windows 10 笔记本电脑。我找不到笔记本电脑充电器。所以,我试图回忆上次笔记本电脑充电器的插入时间。在 Windows 10 上是否可以找到上次插入笔记本电脑充电器的时间?换句话说:Windows 10 是否跟踪“充电器插入/拔出”事件?
如何更改 Windows 打开窗口中的默认排序顺序?
示例:Paint => File => Open => /* need to order by date by default */
。
操作git
需要很长时间才能git
使用。
例如,当一个人git pull
(将本地 repo 更新为 master repo)Antimalware Service Executable
消耗了接近 90% 的 CPU 并且完成git pull
操作需要很长时间。
git
以下是其他一些命令的执行时间测量:
$ git status
...
7m31s
$ git stash save "xxx"
Saved working directory and index state On xxx: xxx
24m26s
$ git stash list
stash@{0}: xxx
23.9s
软件版本:
OS: Windows 10 Pro (Version 10.0.18362 Build 18362).
$ /usr/bin/git --version
git version 2.21.0
至于ssh
我(至少)ssh
安装了两个。我还不知道哪个(如果有的话)被使用git
:
$ /bin/ssh -V
OpenSSH_8.2p1, OpenSSL 1.1.1f 31 Mar 2020
$ /cygdrive/c/Windows/System32/OpenSSH/ssh -V
OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
有什么问题?怎么解决?
UPD。我已经尝试过停止(至少是暂时的)Antimalware Service Executable
,但即使有权限Windows 10
也不允许这样做。Administrator
无法停止反恶意软件服务可执行文件:
UPD1。正如@harrymc 所建议的那样,我已经通过选项添加了文件夹的路径来git
回购。操作变得更快了,但Add or remove exclusions
在操作过程中仍然出现并占用了接近 50% 的 CPU。这种行为被认为是正常的吗?git
Antimalware Service Executable
git
Antimalware Service Executable