繁体   English   中英

从自动字符串bash脚本中删除前缀

[英]Remove prefix from auto string bash script

解决了

在代码中使用cut -c 4-并添加了用于打印文件"$CURFILE1" {新变量 CURFILE1 "$CURFILE1" {

CURFILE="$(basename "$file")"
CURFILE1=$(echo $CURFILE | cut -c 4-)**

之前的代码部分

cp -a $AUTOFILE $AUTOFILE.old > $AUTOFILE.new
for file in /../pictures/*; do
    CURFILE="$(basename "$file")"
    cat <<EOF >> $AUTOFILE.new
file "$CURFILE" {

修改后的代码部分

cp -a $AUTOFILE $AUTOFILE.old > $AUTOFILE.new
for file in /../pictures/*; do
    CURFILE="$(basename "$file")"
    CURFILE1=$(echo $CURFILE | cut -c 4-)**
    cat <<EOF >> $AUTOFILE.new
file "$CURFILE1" {

你好,有人可以帮我写 bash 脚本吗? 我正在努力创建自动填充文件,其中包含有关目录中现有文件的信息,其中包含一些参数和更多代码...

问题是所有文件都使用前缀例如: f1.file ,所以我需要删除f1.file 并只留下file 有关找到的文件的信息作为信息“文本”存储在一个文件中。

我需要在生成文件时在 bash 中使用一些函数,并在此行file "$CURFILE" {自动删除前缀。 CURFILE 是名称,例如:f1.file,我需要删除那个f1。

更具体一点:

  1. Bash 使用来自代码的自定义参数从目录中的所有文件生成文本文件。
  2. 问题是生成的文本带有前缀 f1,f2,f3.... 因为文件名是 f1.picture f2.test 等。
  3. 我只需要在数据文件中显示没有 f1,f2,f3... 等的字符串。
  4. 有人可以帮我用一些功能修改这一行吗? (种子等我知道有,但我不知道如何将其添加到现有行中。谢谢!

请不要发布代码片段。

请参阅如何创建最小可重现示例

让我用我们在 SO 上使用的方式重新表述您的问题:

您有一个包含字符串f1.file的变量CURFILE并且您希望它包含file 做就是了:

CURFILE=${CURFILE#*.}

假设您必须删除的前缀由. , ${CURFILE#*.}将从您的字符串前面删除任何后跟一个点的字符串。

根据您的代码,您总是想创建一个新变量CURFILE1 ,它与CURFILE相同,但没有前 3 个字符。 为此,没有必要对子进程使用命令替换。 做一个

CURFILE1=${CURFILE#???}

如果你想确保只有一个f1. 被删除,而不是,比如说,初始f2. , 取而代之的是

CURFILE1=${CURFILE#f1.}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM