标签: string-manipulation

如何在鱼壳中进行字符串操作

如何在 Fish shell 中进行 bash 样式的字符串操作?

具体来说,在 bash

read branch < ".git/HEAD"
branch=${branch#ref: refs/heads/}
Run Code Online (Sandbox Code Playgroud)

将分支名称放在$branch变量中。

我如何在鱼壳中做同样的事情?

我浏览了鱼的文档,但没有找到任何东西。

string-manipulation fish

5
推荐指数
2
解决办法
3828
查看次数

VI 将下划线后的第一个字母设为大写

找到这个网站:

它适用于第一个字符,但我的线条是这样的

this_is_a_string
Run Code Online (Sandbox Code Playgroud)

我想要这个

This_Is_A_String
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

VI Command会很好,但任何其他简单的解决方案也可以

linux vim vi regex string-manipulation

4
推荐指数
1
解决办法
2388
查看次数

带有波浪号的 Bash 前缀字符串以扩展到主目录

我不知道如何在字符串(例如“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)

linux script bash string-manipulation

4
推荐指数
1
解决办法
2743
查看次数

如何从`find -exec`中作为{}传递的路径名中删除扩展名?

鉴于需要从位于子目录中的视频文件中提取音频的情况,如何正确命名生成的文件?

以下单行工作,但保留旧的文件扩展名。

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)

unix find string-manipulation file-extension

4
推荐指数
1
解决办法
1138
查看次数

在 MacOS X 中保存时自动从文件名中删除特殊字符的功能

我经常在 MacOS X (10.6) 中从网页创建 PDF 文件,并且经常遇到自动建议的文件名(基于网页名称)包含许多特殊字符的问题。

所以我想知道:有没有一种简单的方法(苹果脚本、shell 脚本、OS X 服务),它接受一个字符串(比如这个文件名)并通过

  • 删除所有空格和其他特殊字符(还有那些在 OS X 中可能允许但在 Windows 或 Linux 中被禁止的字符!!因为我经常将文件传输到我们的 PC)
  • 可能以大写字母开头每个单词(在删除的空格之后)
  • ……还有什么重要的?

我正在使用 Quicksilver,所以也许可以创建一个命令,它可以用转换后的字符串替换当前文本选择(在文件另存为...对话框中)。

string-manipulation filenames macos

3
推荐指数
1
解决办法
1万
查看次数

Linux shell 脚本:意外的变量行为

我有一个$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 的输出在第一行包含一个单词,在第二行包含一个单词。

我有两个问题:

  1. 为什么 echo 打印空格而不是换行符?
  2. 是否有可能使它更容易或更正确(我不是 shell 脚本方面的专业人士,也许我在这里遗漏了一些东西)

shell shell-script string-manipulation echo

3
推荐指数
1
解决办法
223
查看次数

Linux命令删除重复行但保留第一次出现的行

我有一个文本文件。每行包含一个字符串。有些字符串是重复的。我想删除重复的内容,但我想保留第一次出现的内容。例如:

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但这没有帮助。它删除了所有重复的字符串,而我希望出现第一个字符串。我不需要排序。只需删除新行中字符串的精确重复,同时保持其他所有内容不变即可。

linux command-line string-manipulation ubuntu

3
推荐指数
1
解决办法
9051
查看次数

在没有“./”前缀的文件名上使用 find 和 do 命令

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不带./前缀的文件名?

linux bash command-line find string-manipulation

3
推荐指数
1
解决办法
648
查看次数

Shell:查找和替换单词

我的 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 存储用户提供的项目名称。但这似乎不起作用

我怎样才能让它正常工作?

bash awk shell-script string-manipulation

2
推荐指数
1
解决办法
1万
查看次数

删除 Excel 中的 URL 参数

我有以下形式的 URL:

http://www.example.com/page.html?param1=asdf&param2=asdfg&param3=asdfgh
Run Code Online (Sandbox Code Playgroud)

我想从 URL 中提取 param2 或 3 的值,并从 URL 中删除该特定参数。关于如何使用 Excel 执行此操作的任何想法?

microsoft-excel-2007 string-manipulation microsoft-excel

1
推荐指数
1
解决办法
3869
查看次数

Excel 字符串提取

我在一个单元格中有一个字符串:

ABCDxxxxxEFGH
Run Code Online (Sandbox Code Playgroud)

ABCDEFGH是常数,并且xxxxx是可变长度的。

如何编写要提取的 Excel 公式xxxxx

worksheet-function string-manipulation microsoft-excel

0
推荐指数
1
解决办法
531
查看次数