我想分别获取文件名(没有扩展名)和扩展名.
我到目前为止找到的最佳解决方案是:
NAME=`echo "$FILE" | cut -d'.' -f1`
EXTENSION=`echo "$FILE" | cut -d'.' -f2`
Run Code Online (Sandbox Code Playgroud)
这是错误的,因为如果文件名包含多个.
字符,它将不起作用.如果,让我们说,我有a.b.js
,它会考虑a
和b.js
,而不是a.b
和js
.
它可以在Python中轻松完成
file, ext = os.path.splitext(path)
Run Code Online (Sandbox Code Playgroud)
但是如果可能的话,我宁愿不为此启动Python解释器.
有更好的想法吗?
我从某个地方学到了一个独立的屏幕可以被杀死
屏幕-X -S [会话#你要杀]杀
你可以从哪里得到[你要杀的会话#]
屏幕-ls.
但这不起作用.哪里不对了?什么是正确的方法?
如果我正在使用终端并为命令输入一行文本,是否有热键或任何方式来清除/删除该行?
例如,如果我当前的行/命令非常像:
> git log --graph --all --blah..uh oh i want to cancel and clear this line <cursor is here now>
Run Code Online (Sandbox Code Playgroud)
是否有热键或命令从上面到:
>
Run Code Online (Sandbox Code Playgroud)
?
通常我会按下↓键,如果我的当前行是历史上的全新行,那将清除它.但是如果我通过↑键查看命令历史记录并开始编辑或使用这些命令,↓则只会将提示更改为历史记录中的下一个最新命令,因此除非我按↓多次,否则它不起作用.
我需要编写一个脚本来输入程序的多行输入(psql
).
经过一段谷歌搜索后,我发现以下语法有效:
cat << EOF | psql ---params
BEGIN;
`pg_dump ----something`
update table .... statement ...;
END;
EOF
Run Code Online (Sandbox Code Playgroud)
这正确地构造了多行字符串(从包含BEGIN;
到END;
包含),并将其作为输入进行管道输入psql
.
但是我不知道它是如何/为什么有效的,有人可以解释一下吗?
我主要是指cat << EOF
,我知道>
文件的输出,>>
附加到文件,<
从文件读取输入.
究竟做<<
了什么?
它有一个手册页吗?
给定一个字符串文件路径/foo/fizzbuzz.bar
,如何使用bash只提取fizzbuzz
所述字符串的一部分?
我想从一个bash shell脚本运行一个命令,该脚本在单引号和变量中有单引号和一些其他命令.
例如 repo forall -c '....$variable'
在此格式中,$
进行转义并且不扩展变量.
我尝试了以下变化,但他们被拒绝了:
repo forall -c '...."$variable" '
repo forall -c " '....$variable' "
" repo forall -c '....$variable' "
repo forall -c "'" ....$variable "'"
Run Code Online (Sandbox Code Playgroud)
如果我用值代替变量来执行命令就好了.
请告诉我哪里出错了.
我试图使用sed删除空行:
sed '/^$/d'
Run Code Online (Sandbox Code Playgroud)
但我没有运气.
例如,我有这些行:
xxxxxx
yyyyyy
zzzzzz
Run Code Online (Sandbox Code Playgroud)
我希望它像:
xxxxxx
yyyyyy
zzzzzz
Run Code Online (Sandbox Code Playgroud)
应该是什么代码?
我有一个文件如下:
line1
line2
line3
Run Code Online (Sandbox Code Playgroud)
我想得到:
prefixline1
prefixline2
prefixline3
Run Code Online (Sandbox Code Playgroud)
我可以写一个Ruby脚本,但如果我不需要它会更好.
prefix
将包含/
./opt/workdir/
例如,这是一条道路.