如果我有一条线:
Thhiisss iisss mmyyy nameeee
Run Code Online (Sandbox Code Playgroud)
我想将其打印为:
This is my name
Run Code Online (Sandbox Code Playgroud)
什么是 unix 命令?
假设存在一个程序,它接受两个参数;输入文件和输出文件。
如果我不想将此输出文件保存到磁盘,而是直接将其传递给stdin
另一个程序,该怎么办。有没有办法实现这一目标?
我在 Linux 上遇到的很多命令都提供了一个选项来传递“-”作为输出文件参数,它执行我上面指定的操作。这是因为stdin
不可能将程序的作为参数传递吗?如果是,我们该怎么做?
我如何使用它进行成像的一个例子是:
pdftotext "C BY BRIAN W KERNIGHAN & DENNIS M RITCHIE.pdf" stdin(echo)
Run Code Online (Sandbox Code Playgroud)
我使用的外壳是 bash。
我在根目录中有 ubuntu 文件系统目录,我不小心将数百个文件复制到根目录中。
我直觉地试图通过排除文件系统来删除复制的文件
rm -rf !{bin,sbin,usr,opt,lib,var,etc,srv,libx32,lib64,run,boot,proc,sys,dev} ./.
Run Code Online (Sandbox Code Playgroud)
但它不起作用。在删除整个目录时排除某些目录的正确方法是什么?
编辑:永远不要在不知道该怎么做的情况下尝试这里的任何命令!
我有以下字符串: /tmp/test/folder1/test.txt
我希望使用sed
以替代/
的\/
-例如:
\/tmp\/test\/folder1\/test.txt
Run Code Online (Sandbox Code Playgroud)
所以我发出:
echo "/tmp/test/folder1/test.txt" | sed "s/\//\\\\//g"
Run Code Online (Sandbox Code Playgroud)
虽然它返回:
sed: -e 表达式 #1, char 9: `s' 的未知选项
我正在逃避正斜杠和反斜杠 - 所以不确定我在这里哪里出错了
它一直困扰着我很长时间,我真的厌倦了。例如,有一个名为 testscript 的脚本可以比较两个目录。在课堂上教授可以只输入
testscript dir1 dir2
Run Code Online (Sandbox Code Playgroud)
获取输出,但我必须在测试脚本之前添加 ./ 并按回车键。然后在下一行输入 dir1 和 dir2
教授是怎么做到的?它与bashrc有关吗?我从来不明白它是如何工作的。如果它相关,请用简单的语言解释,因为我是 Linux 新手。谢谢!
我尝试使用该ls
命令并出现错误:
bash: /bin/ls: cannot execute binary file
Run Code Online (Sandbox Code Playgroud)
我可以用什么来代替这个命令?
在以下命令中,cat 获取 here-doc 的内容并将其重定向到名为 conf 的文件:
cat > conf << EOF
var1="cat"
var2="dog"
var3="hamster"
EOF
Run Code Online (Sandbox Code Playgroud)
如何理解这里的命令顺序?是否bash
首先处理其他所有内容(此处为文档部分),并作为最后一步,它看起来像> conf
部分?
在下面的代码,当我给选项r
则getopts
需要一个参数:
while getopts ":hr::l:" opt; do
case $opt in
r ) echo "Run Numbers - argument = $OPTARG " ;;
l ) echo "Latency range - argument = $OPTARG" ;;
h ) helptext
graceful_exit ;;
* ) usage
clean_up
exit 1
esac
done
Run Code Online (Sandbox Code Playgroud)
但是我需要在-r
选项之后传递两个参数,而不是一个。是否有捷径可寻?
我想删除目录中的所有文件,同时只保留一些指定的文件,它们的名称没有任何共同点。我怎么能做到这一点?
例如,我想保留的文件名是:
file_1.png
, another_file.jpg
,some_music.mp3
我今天刚从 Ubuntu 11.04 收到一条消息,说我只剩下 100 MB,所以我清理了一些文件,我得到了 200 MB。然后,几个小时后,突然我只有 26 MB?!我试过df
,du
通过mount --bind
,/forcefsck
重新启动 - 罪魁祸首是什么 - 最后我搜索了大文件,意识到 /var/log/syslog 是 100MB+ 和 /var/log/kern.log 是 200MB+ - 将它们清空sudo bash -c 'echo > ...'
并重新启动,然后现在我有一些空闲的 MB。
但是现在,我意识到我还有另一个问题df
:
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda5 9,7G 8,8G 385M 96% /
none 963M 696K 962M 1% /dev
none 969M 12K 969M 1% /dev/shm
none 969M 252K 969M 1% /var/run
none 969M 0 …
Run Code Online (Sandbox Code Playgroud) bash ×5
command-line ×3
rm ×2
arguments ×1
array ×1
bashrc ×1
disk-usage ×1
executable ×1
filenames ×1
files ×1
filesystems ×1
getopts ×1
linux ×1
ls ×1
options ×1
path ×1
sed ×1
shell ×1
shell-script ×1
wildcards ×1