标签: bash

Mac OS X 终端:使用 grep 搜索另一个命令的输出

我正在尝试获取 ls 命令的输出并在该列表中搜索正则表达式...实际上,它将在文件夹中的每个文件名中搜索正则表达式。我整理了一个简单的例子来说明我认为正确的方法,但显然不是:

$ ls ~/桌面/testFolder | grep -rn“内容”

我知道,我可以为此编写一个脚本,将“ls”的输出通过管道传输到文本文件,然后 grep ......但我问如何在没有多步骤过程或脚本的情况下执行此操作。

mac terminal bash grep macos

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

GNU 对话框和 UTF-8 字符

我在我的一个冗长的 shell 脚本中使用 GNU 对话框。我遇到的问题之一是当我要求一个输入框时,用户可以在其中输入一本书的标题(主要是法语)。

\n\n

在此输入框中,输入重音字符(\xc3\xa9\xc3\xa0\xc3\xa8 在法语中很常见)或特殊的 UTF-8 字符(例如破折号“\xe2\x80\x94”)会移动光标右边有 4 个字符,而不是 1 个。在 3 或 4 个“特殊”字符之后,输入框由于此工件而完全无法使用。

\n\n

同样,当我显示带有对话框的菜单时,重音字符会移动对话框的右边框。这比输入框中的障碍要小,但视觉上却很不舒服。

\n\n

我已经尝试了各种方法来使其正常工作,但无济于事。

\n\n

作为记录,这是我的 LC_* 环境变量:

\n\n
LC_PAPER=fr_FR.UTF-8\nLC_ADDRESS=fr_FR.UTF-8\nLC_MONETARY=fr_FR.UTF-8\nLC_NUMERIC=fr_FR.UTF-8\nLC_ALL=fr_FR.UTF-8\nLC_TELEPHONE=fr_FR.UTF-8\nLC_MESSAGES=fr_FR.UTF-8\nLC_IDENTIFICATION=fr_FR.UTF-8\nLC_COLLATE=fr_FR.UTF-8\nLC_MEASUREMENT=fr_FR.UTF-8\nLC_CTYPE=fr_FR.UTF-8\nLC_TIME=fr_FR.UTF-8\nLC_NAME=fr_FR.UTF-8\nLANG=fr_FR.UTF-8\n
Run Code Online (Sandbox Code Playgroud)\n\n

我能做什么?

\n\n

(编辑:如下所述,我使用的是 Mac,无论我使用 iTerm2 还是内置终端模拟器,都会出现同样的问题。)

\n

bash unicode utf-8

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

如何在 Mac OS X 中禁用终端的来宾访问?

我正在尝试从终端禁用访客帐户。

\n\n

我需要相同的效果,例如禁用System Preferences \xe2\x86\x92 Accounts \xe2\x86\x92 Guest Account \xe2\x86\x92 Allow guests to connect to Sharedfolders

\n\n

我认为来宾访问在 Lion 上默认被禁用,所以我需要它用于 10.5 和 10.6。

\n

terminal bash cocoa macos

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

使用目录列表从文件中删除目录

我在文本文件中有一个目录列表,每个目录都需要删除。我如何将该列表读入命令(rm -rrmdir)?

bash shell rm

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

比较并忽略一个文件中缺少的行

我想比较两个文件并忽略一个文件中存在但另一个文件中缺失的行。

例如

文件1:

foo
bar
baz
bat
Run Code Online (Sandbox Code Playgroud)

文件2:

foo
ball
bat
Run Code Online (Sandbox Code Playgroud)

我当前正在运行以下 diff 命令

diff File1 File2 --changed-group-format='%>' --unchanged-group-format=''
Run Code Online (Sandbox Code Playgroud)

在这种情况下会产生

bar
baz
Run Code Online (Sandbox Code Playgroud)

作为输出,即仅缺少或冲突的行。我只想打印冲突的行,即忽略 File2 中缺少一行而 File1 中存在一行的情况(而不是相反)。有什么方法可以使用 diff 来做这样的事情还是我必须求助于其他工具?如果是这样,你会推荐什么?

cygwin bash diff shell

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

如何删除命令行的路径?

当我开始进入不同的文件夹时,路径已在我的命令行中注册,但我不知道如何删除它。我几乎可以肯定我的问题不清楚。一个例子总是更好。到家后:

luiz@feynman:~$ cd Music/
luiz@feynman:~/Music$ cd Beatles/
luiz@feynman:~/Music/Beatles$ cd 17\ Love/
Run Code Online (Sandbox Code Playgroud)

让我烦恼的是:~/Music~/Music/Beatles在$之前。这似乎是一个愚蠢的问题,但当我需要进入许多文件夹时确实是一个大问题。我想我应该更改 .bashrc 中的某些内容,但我不知道是什么。

谢谢

linux bash path command-line

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

如何使用默认写入写入 <array><dict> 结构?

我有一个.plist结构如下的文件:

<plist version="1.0">
   <array>
      <dict>
         <key>BundleIsVersionChecked</key>
         <false/>
         <key>BundleIsRelocatable</key>
         <false/>
         <key>BundleHasStrictIdentifier</key>
         <false/>
         <key>RootRelativeBundlePath</key>
         <string>value</string>
      </dict>
   </array>
</plist>
Run Code Online (Sandbox Code Playgroud)

RootRelativeBundlePath我想使用命令添加或编辑-key defaults write。另一种可能性是编写整个 plist 文件,但它必须具有相同的精确结构。

我怎样才能做到这一点?

bash plist macos

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

在 bash 中映射向上/向下箭头键

我想将Up/Down arrow keysbash 映射到,Alt+j/Alt+k因为当我选择以前使用 执行的命令时,我不想将手移到箭头键上Up/Down arrow keys

在 bash 中使用 vi 模式不是一个选项,因为我不想Esc在使用 bash 时时不时地按一下。(因为我不习惯这样做)

bash keymap

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

Unix 套接字放在哪里?

我对此很陌生,如果它很明显,我很抱歉。我正在运行 Debian 服务器并在那里安装 UWSGI、Nginx 等。配置一直在谈论指向“套接字”。

在构建选项中,我似乎能够指定每个程序的套接字的位置。默认情况下,看起来大多数都进去了/tmp/(不是全部)。

这是他们去的好地方吗?我试图让事情尽可能有条理,但只是将它们塞在我的 tmp 目录中似乎不是最好的选择。

unix debian bash sockets

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

运行带斜杠或不带斜杠的可执行 bash 脚本

我有 bash 脚本test.sh,它没有什么特别的:

#!/bin/bash
echo Hello!
Run Code Online (Sandbox Code Playgroud)

如果我像这样运行它. test.sh,它就会起作用。

kopparberg:dev marek$ . test.sh
Hello!
Run Code Online (Sandbox Code Playgroud)

如果我像这样运行它./test.sh,它不会。

kopparberg:dev marek$ ./test.sh 
-bash: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory
Run Code Online (Sandbox Code Playgroud)

有什么不同?

bash

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

标签 统计

bash ×10

macos ×3

shell ×2

terminal ×2

cocoa ×1

command-line ×1

cygwin ×1

debian ×1

diff ×1

grep ×1

keymap ×1

linux ×1

mac ×1

path ×1

plist ×1

rm ×1

sockets ×1

unicode ×1

unix ×1

utf-8 ×1