用ls结果替换bash中2个字符串之间的文本

Stefanos Chrs

我想为部署创建自动化,js / css是用前缀生成的,并且我想将它们导入标记之间的php文件中

预期产量

...
/*bashStart*/
drupal_add_css(drupal_get_path("module","myModule")."/styles/c91c6d11.main.css");
drupal_add_js(drupal_get_path("module","myModule")."/scripts/j91c6d11.main.js");
/*bashEnd*/
...

我用awk到目前为止已经把我带到这里了,但是我有一个问题,它正在生成

    ...
    /*bashStart*/
    drupal_add_css(drupal_get_path("module","myModule")."/styles/c91c6d11.main.css
");
    drupal_add_js(drupal_get_path("module","myModule")."/scripts/j91c6d11.main.js
");
    /*bashEnd*/
    ...

这是awk脚本:

awk 'BEGIN {p=1}/Start/{print;printf("drupal_add_css(drupal_get_path(\"module\",\"myModule\").\"/styles/");system("ls styles");printf("\");\n");printf("drupal_add_js(drupal_get_path(\"module\",\"myModule\").\"/scripts/");system("ls scripts");printf("\");\n");p=0}/Finish/{p=1} p' myModule.module > tmp;
汤姆·费内奇

在awk中使用ls不太好-我认为您可以完全在shell中执行此操作:

#!/bin/bash

p=1
while read -r line; do
    [[ $line = '/*bashEnd*/' ]] && p=1
    (( p )) && echo "$line"
    if [[ $line = '/*bashStart*/' ]]; then
        p=0
        for style in styles/*; do
            echo 'drupal_add_css(drupal_get_path("module","myModule")."/styles/'"$style"'");'
        done
        for script in scripts/*; do
            echo 'drupal_add_js(drupal_get_path("module","myModule")."/scripts/'"$script"'");'
        done
    fi
done < file.php > output.php

循环遍历输入文件,直到到达“ bashStart”行,然后添加所需的行。输出到一个文件output.php,您可以在覆盖原始文件之前检查该文件。如果您有信心,可以添加&& mv output.php file.php到该done行中,以覆盖原始文件。

该标志p控制要打印的行。当到达“ bashStart”行时将其设置为0,而当到达bashEnd行时将其设置为1,因此将替换两者之间的行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Bash用另一个字符串替换空格和字符串结尾

来自分类Dev

用另一个字符串替换字符串中的字符

来自分类Dev

bash和sed:用for循环替换变量中的多个字符串

来自分类Dev

用另一个字符串替换字符串中的字符?

来自分类Dev

使用linux bash替换文件中两个字符串之间的文本

来自分类Dev

使用bash shell脚本提取2个字符串之间的字符串

来自分类Dev

查找字符串中的文本并将整个字符串替换为另一个字符串+ R

来自分类Dev

删除字符串中2个字符之间的所有字符

来自分类Dev

查找并替换2个字符串之间的字符串

来自分类Dev

在Shell脚本中如何在随后出现的2个字符串模式之间替换字符串?

来自分类Dev

如何在整个文本中的两个字符之间替换字符串?

来自分类Dev

如何从Dart中的字符串替换2个字符串字母?

来自分类Dev

用Django模板中的另一个字符串替换字符串

来自分类Dev

PowerShell用日期和时间替换两个字符串之间的文本

来自分类Dev

Javascript Regex替换2个字符串之间的字符串

来自分类Dev

bash&sed:用for循环替换变量中的多个字符串

来自分类Dev

用另一个字符串替换字符串中的字符?

来自分类Dev

用正则表达式替换文本中的多个字符串

来自分类Dev

删除2个字符串之间的文本(html标记)

来自分类Dev

python在wordlist中的2个字符串之间获取文本

来自分类Dev

在2个字符串之间的正则表达式中选择文本

来自分类Dev

将字符串中的一个字符替换为2

来自分类Dev

在2个字符串之间替换文本

来自分类Dev

在单个字符串中的两个模式之间搜索多个结果

来自分类Dev

用Java在2个字符串之间替换字符串

来自分类Dev

使用 JAVA 用其他字符串替换单个字符串中的 2 个部分

来自分类Dev

无法用另一个字符串替换字符串中的字符

来自分类Dev

如何在csh中的2个字符串之间更改字符串?

来自分类Dev

sed 用另一个字符串替换字符串错误结果

Related 相关文章

  1. 1

    Bash用另一个字符串替换空格和字符串结尾

  2. 2

    用另一个字符串替换字符串中的字符

  3. 3

    bash和sed:用for循环替换变量中的多个字符串

  4. 4

    用另一个字符串替换字符串中的字符?

  5. 5

    使用linux bash替换文件中两个字符串之间的文本

  6. 6

    使用bash shell脚本提取2个字符串之间的字符串

  7. 7

    查找字符串中的文本并将整个字符串替换为另一个字符串+ R

  8. 8

    删除字符串中2个字符之间的所有字符

  9. 9

    查找并替换2个字符串之间的字符串

  10. 10

    在Shell脚本中如何在随后出现的2个字符串模式之间替换字符串?

  11. 11

    如何在整个文本中的两个字符之间替换字符串?

  12. 12

    如何从Dart中的字符串替换2个字符串字母?

  13. 13

    用Django模板中的另一个字符串替换字符串

  14. 14

    PowerShell用日期和时间替换两个字符串之间的文本

  15. 15

    Javascript Regex替换2个字符串之间的字符串

  16. 16

    bash&sed:用for循环替换变量中的多个字符串

  17. 17

    用另一个字符串替换字符串中的字符?

  18. 18

    用正则表达式替换文本中的多个字符串

  19. 19

    删除2个字符串之间的文本(html标记)

  20. 20

    python在wordlist中的2个字符串之间获取文本

  21. 21

    在2个字符串之间的正则表达式中选择文本

  22. 22

    将字符串中的一个字符替换为2

  23. 23

    在2个字符串之间替换文本

  24. 24

    在单个字符串中的两个模式之间搜索多个结果

  25. 25

    用Java在2个字符串之间替换字符串

  26. 26

    使用 JAVA 用其他字符串替换单个字符串中的 2 个部分

  27. 27

    无法用另一个字符串替换字符串中的字符

  28. 28

    如何在csh中的2个字符串之间更改字符串?

  29. 29

    sed 用另一个字符串替换字符串错误结果

热门标签

归档