如何在 Fish shell 中进行 bash 样式的字符串操作?
具体来说,在 bash
read branch < ".git/HEAD"
branch=${branch#ref: refs/heads/}
Run Code Online (Sandbox Code Playgroud)
将分支名称放在$branch变量中。
我如何在鱼壳中做同样的事情?
我浏览了鱼的文档,但没有找到任何东西。
找到这个网站:
它适用于第一个字符,但我的线条是这样的
this_is_a_string
Run Code Online (Sandbox Code Playgroud)
我想要这个
This_Is_A_String
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
VI Command会很好,但任何其他简单的解决方案也可以
我不知道如何在字符串(例如“user1”)前加上波浪号(~)来生成~user1并将其扩展到 user1 的主目录。
这是我现在所拥有的:
USER="user1"
ls ~${USER}
ls: cannot access ~user1: No such file or directory
Run Code Online (Sandbox Code Playgroud)
~user1没有被扩展。我怎样才能实现它?
这不起作用:
$ cat test.sh
USER="user1"
ls $(~$USER)
$ sh -x test.sh
+ USER=user1
+ ~user1
test.sh: 1: ~user1: not found
+ ls
test.sh
Run Code Online (Sandbox Code Playgroud) 鉴于需要从位于子目录中的视频文件中提取音频的情况,如何正确命名生成的文件?
以下单行工作,但保留旧的文件扩展名。
find -name "*.mp4" -exec ffmpeg -i {} -vn -acodec copy {}.aac -hide_banner \;
Run Code Online (Sandbox Code Playgroud)
当前结果:
foobar.mp4 --> foobar.mp4.aac
Run Code Online (Sandbox Code Playgroud)
期望的结果:
foobar.mp4 --> foobar.aac
Run Code Online (Sandbox Code Playgroud) 我经常在 MacOS X (10.6) 中从网页创建 PDF 文件,并且经常遇到自动建议的文件名(基于网页名称)包含许多特殊字符的问题。
所以我想知道:有没有一种简单的方法(苹果脚本、shell 脚本、OS X 服务),它接受一个字符串(比如这个文件名)并通过
我正在使用 Quicksilver,所以也许可以创建一个命令,它可以用转换后的字符串替换当前文本选择(在文件另存为...对话框中)。
我有一个$myvar包含两行的变量,我想将其中的第一个放入一个新变量中。
当我尝试:
$ myvar1 = $(echo $myvar | head -n 1)
Run Code Online (Sandbox Code Playgroud)
它不起作用,因为 echo 不会像我期望的那样输出换行符。
显然我可以这样做:
$ myvar1 = $(echo $myvar | cut -d " " -f 1)
Run Code Online (Sandbox Code Playgroud)
它将工作,因为 echo 的输出在第一行包含一个单词,在第二行包含一个单词。
我有两个问题:
我有一个文本文件。每行包含一个字符串。有些字符串是重复的。我想删除重复的内容,但我想保留第一次出现的内容。例如:
line1
line1
line2
line3
line4
line3
line5
Run Code Online (Sandbox Code Playgroud)
应该
line1
line2
line3
line4
line5
Run Code Online (Sandbox Code Playgroud)
我尝试过:sort file1 | uniq -u > file2但这没有帮助。它删除了所有重复的字符串,而我希望出现第一个字符串。我不需要排序。只需删除新行中字符串的精确重复,同时保持其他所有内容不变即可。
cp对多个子目录中的文件名执行 a并foo-为其添加前缀会导致错误:
$ find my-dir -path "*/*" -execdir sh -c 'cp {} foo-{}' \;
cannot create regular file ‘foo-./blabla.jpg’: No such file or directory
Run Code Online (Sandbox Code Playgroud)
在 macOS 上,我没有得到这个./前缀,而且命令工作正常。
有没有办法cp不带./前缀的文件名?
我的 shell 脚本中有一个字符串,它采用固定格式:'[STATUS REPORT] PROJECT'. 当用户执行我的 shell 脚本时,他会被要求提供'PROJECT'.
我想'PROJECT'用用户提供的价值替换这个词。例如,如果'ABCD'是用户输入:
'[状态报告] ABCD'
我有两个问题: 1:如何处理项目名称中的“&”等特殊字符?例如:
echo "[STATUS REPORT] PROJECT" | awk '{ gsub(/PROJECT/, "A&A"); print }'
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
[状态报告] APROJECTA
2:我的实际 shell 语句如下所示:
echo "[STATUS REPORT] PROJECT" | awk '{ gsub(/PROJECT/, $ProjectName); print }'
Run Code Online (Sandbox Code Playgroud)
其中 $ProjectName 存储用户提供的项目名称。但这似乎不起作用
我怎样才能让它正常工作?
我有以下形式的 URL:
http://www.example.com/page.html?param1=asdf¶m2=asdfg¶m3=asdfgh
Run Code Online (Sandbox Code Playgroud)
我想从 URL 中提取 param2 或 3 的值,并从 URL 中删除该特定参数。关于如何使用 Excel 执行此操作的任何想法?
我在一个单元格中有一个字符串:
ABCDxxxxxEFGH
Run Code Online (Sandbox Code Playgroud)
ABCD和EFGH是常数,并且xxxxx是可变长度的。
如何编写要提取的 Excel 公式xxxxx?