我有一个shell脚本,可以在这样的文件夹中打印appimage文件名
#! /bin/bash
Dir="$HOME/Applications/"
Dir2="$HOME/Downloads/"
cd -P "$Dir"
for f in *.AppImage; do
z=$(echo $f | head -n1 | awk '{print $1;}')
echo $z
done
现在输出如下:
Altus-4.8.5-x86_64.AppImage
GitHubDesktop-linux-3.2.0-linux1.Ap
我在我的Linux中同时运行多个命令。
echo "Line of text 1" && echo "Line of text 2" && complexthing | xargs printf "complexspecifier"
我想将所有输出重定向到file1。我知道我可以在每个单独的命令之后添加>file1,但这似乎很大。我该怎么做?
如何将redhat Linux中shell脚本中的Bash变量设置为只有一行的文件内容,然后在其后面添加一些文本。
例如:
echo "Version 1.2.3.4" > $TMPDIR/devver
env=dev
export ${env}_result="`cat $TMPDIR/${env}ver` (No response - version is from cache)"
echo $dev_result
我希望输出为:
Version 1.2.3.4 (No response - version is from cache)
取而代之的是
如何使用Bash遍历文本文件的每一行(
使用此脚本:
echo "Start!"
for p in (peptides.txt)
do
echo "${p}"
done
我在屏幕上看到下面的输出:
Start!
./runPep.sh: line 3: syntax error near unexpected token `('
./runPep.sh: line 3: `for p in (peptides.txt)'
(稍后,我想用$p做一些更复杂的事情,而不仅仅是输出到屏幕上。)
环境变量外壳为(来自环境):
SHELL=/bin
我编写了一个小函数,它返回执行命令的结果。
function axsh(cmd)
local fullCmd=cmd:lower()
local f,err=io.popen(fullCmd,"r")
if not f then
return nil,"Could not create the process '"..fullCmd.."' \nError:"..err
end
return f:read("*all")
end
s=axsh("ec
我只是发现了两个命令之间的区别:
echo sum.txt| xargs cat
这将输出sum.txt的内容
echo sum.txt| xargs -0 cat
下面显示错误:
cat: sum.txt
: No such file or directory
我知道-0会把空字节当作分隔符。我认为新行的开头是:,因为echo命令会生成新的行。并且不会产生如下输出:
cat: sum.txt: No such file or directory
但是如果echo生成新的行,为什么第一个命令可以成功呢?因为xargs默认使用空格作为分隔符。
在输入管道上使用SED,如何将输入插入到将用作linux命令的文本中间?
echo foobar | sed 's/^/one two /'
这将输出one two foobar。
我如何使用SED重新格式化它,以便管道值之间像one foobar two一样
我已经试过将两个SED命令排成一行,但是这不起作用,格式也变得混乱了。因此,我正在寻找一种方法来做它与单一的SED命令。
我目前正在尝试在这里添加一个空行,这是我到目前为止所使用的命令的示例
echo -e "my kernel version is $(uname -a) \nand the current date is $(date)"
我如何改变整个事情,所以这个输出是
my kernel version is Linux centos7 3.10.0-1127.18.2.el7.x86_64 #1 SMP Sun Jul 26 15:27:06 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
*** empty line***
and the cur
假设我有一个名为file的文件:
$ cat file
Hello
Welcome to
Unix
我想在文件的最后一行末尾添加and Linux。如果我这样做,echo " and Linux" >> file将被添加到一个新的行。但我想要最后一行Unix and Linux
因此,为了解决这个问题,我希望删除文件末尾的换行符。因此,如何删除文件末尾的换行符以便向该行添加文本?