我试图使用 sed 编辑文件的输出。文件内容为
cat /tmp/Group_RM
t.p@k.p
t.m@k.k
Run Code Online (Sandbox Code Playgroud)
我试图获得如下输出:
cat /tmp/Group_RM
t_p@k_p
t_m@k_k
Run Code Online (Sandbox Code Playgroud)
我尝试了以下命令,但输出看起来很奇怪:
cat /tmp/Group_RM | sed 's/./_/g'
Run Code Online (Sandbox Code Playgroud)
输出是:
____ ___
_______
Run Code Online (Sandbox Code Playgroud)
sed 用下划线替换所有字符。当我尝试用“.”替换“_”时,sed 完美运行。
我希望能够运行一个脚本来删除我所有的空目录。问题是其中一些是嵌套的,即其中只有空目录的目录,因此脚本需要递归。
我知道这个:
find /media/server/data001/Unprotected/Downloads/ -type d -empty -exec rmdir {} \;
Run Code Online (Sandbox Code Playgroud)
但我不知道如何让它一次又一次地运行,直到处理完所有嵌套目录然后停止。
我希望这个脚本在运行时不提示我输入密码。我想在脚本中放置一个密码,该密码将自行传递。这不是 root 密码:它用于专门为此目的设置的帐户。
#!/bin/bash
copyPath=/u/home/topp/Daily
destinationPath=/home/taliesin_oppenheimer
pass=Pass
scp user@host:$copyPath/UserLatency.txt $destinationPath/TXTfiles
scp user@host:$copyPath/ServerLatency.txt $destinationPath/TXTfiles
Run Code Online (Sandbox Code Playgroud)
等等
理想情况下,我想设置一个每天早上启动这个脚本的 crontab,这样我一到办公室就可以解析本地机器上的 txt 文件。当我现在运行它时,我必须为我复制的每个文件输入密码。
任何指针?
谢谢,最好,
-塔利
我做了之后
$ which play
$ /Users/username/local/play/play
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以快速访问显示的目录而无需手动输入目录?只是好奇 :)
我想创建 100 个文件,每个文件大小为 10Mb。是否有一个简单的 unix 命令可以创建一个包含这 100 个文件的目录?
我知道zsh 的preexec()挂钩以及在 bash 中可以实现的方式。(链接)
但是我可以在打字的同时获得当前输入吗?
这个问题背后的想法如下:
为了更快地学习命令、参数和快捷方式,我想在“数据库”中搜索正在键入的命令,提供“帮助/有用知识/快捷方式”提示,并在键入时使用 screen/tmux 在另一个会话中显示这些在另一个。
是否可以检查当前正在键入的命令?如果它对每次击键都不起作用,则计时器循环也可能起作用。
我想知道是否可以指定一些优雅的条件(可能是参数?)rm -rf /folder/*不删除其子文件夹,其中包含名称为“dontshoot.txt”的文件。
到目前为止我找不到任何东西。
在此先感谢您的帮助!
Ubuntu 服务器 12.04
在我通过 ssh 连接的远程服务器上,我设置了一个特殊用户:
sudo adduser --system --disabled-login --disabled-password --group suser
运行一些维护功能。有时我会进入一个登录会话suser:
sudo su -l suser -s /bin/bash
做一些任务......但是我特别希望能够通过以下方式运行一些git命令:
sudo su suser -c <COMMAND>
来自我的真实用户并且没有登录到 suser。
不幸的是,我一直无法确定我如何去做。我尝试了唯一对我有意义的方法:
sudo su suser -c git clone https://example.com/repos/project.git
sudo su suser -c "git clone https://example.com/repos/project.git"
or even
sudo su suser -c mkdir /home/suser/test
sudo su suser -c "mkdir /home/suser/test"
Run Code Online (Sandbox Code Playgroud)
但没有任何反应,我回到提示。任何人都可以协助或解释为什么这是不可能的?
我正在学习配置 OS X Mountain Lion 的教程,但在编辑后不知何故bash_profile我无法正确运行终端。
终端启动得很好但是是空白的,如果等待足够长的时间会出现“[进程完成]”,但仅此而已,尽管我仍然可以写入,但我无法运行任何命令。
当我查看 Inspector 时,我发现“登录”过程运行良好,但对于“bash”则是另一回事——它的 ID 与“ruby”一起上升。
这是我遵循的教程。
我.bash_profile在问题出现之前添加的内容是:
export ARCHFLAGS="-arch x86_64"
export PATH=/usr/local/share/python:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
test -f ~/.bashrc && source ~/.bashrc
Run Code Online (Sandbox Code Playgroud) 命令行上的简单 for 循环:
cobrakai$for((i=1;i<=10;i+=1)); do echo "Welcome $i times"; doneWelcome 1 times
Welcome 2 times
Welcome 3 times
Welcome 4 times
Welcome 5 times
Welcome 6 times
Welcome 7 times
Welcome 8 times
Welcome 9 times
Welcome 10 times
Run Code Online (Sandbox Code Playgroud)
...如果我想输入日期命令,我可以这样做:
cobrakai$for((i=1;i<=10;i+=1)); do echo $(date -v -1d "+%Y-%m-%d"); done
2013-08-04
2013-08-04
2013-08-04
2013-08-04
2013-08-04
2013-08-04
2013-08-04
2013-08-04
2013-08-04
2013-08-04
Run Code Online (Sandbox Code Playgroud)
但是,当然,我实际上希望日期倒计时,所以我用 $i 代替 1 但发现我得到了......
for((i=1;i<=10;i+=1)); do echo $(date -v -$id "+%Y-%m-%d"); done
-: Cannot apply date adjustment
usage: date [-jnu] [-d …Run Code Online (Sandbox Code Playgroud)