gpt4 book ai didi

linux - 字符串操作 - 替换某些字符

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:57:58 25 4
gpt4 key购买 nike

我有一个 linux 命令输出如下所示的文件列表:

    folder/folder/folder/file_1
folder_1/folder/folder/file2

我想格式化此输出以满足以下条件:

  • 最后一个斜杠 (/) 始终替换为三个下划线
  • 除最后一个斜杠外的所有斜杠都替换为一个下划线
  • 文件夹名称中的任何下划线都替换为两个下划线
  • 文件名中的任何下划线保持原样

上面看起来像:

    folder_folder_folder___file_1
folder__1_folder_folder___file2

如果您也可以解释您的解决方案,那将会很有帮助。谢谢!

最佳答案

# Assume each line in a variable called $value
# Split the values up into dirname and basename
val_dir="${value%/*}"
val_base="${value##*/}"

# Replace underscores in dirname with two underscores
val_dir="${val_dir//_/__}"
# Replace slashes in dirname with single underscore
val_dir="${val_dir//\//_}"

# Re-join dirname and basename with three underscores
result="${val_dir}___${val_base}"

关于linux - 字符串操作 - 替换某些字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13629906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com