gpt4 book ai didi

linux - 如何解读${x%,*}和${x#*,}的含义

转载 作者:太空宇宙 更新时间:2023-11-04 09:29:48 25 4
gpt4 key购买 nike

问题表述:

假设我有一个名为 pairs.tsv 的文件,其中每一行包含一对逗号分隔的文件路径,例如:

% cat pairs.tsv  
path1,path2
path3,path4

以下代码遍历每一行并在 逗号 出现的地方将其拆分,然后回显拆分的每个结果。

for line in $(cat pairs.tsv); do  
echo ${line%,*}
echo ${line#*,}
% returns:
path1
path2
path3
path4

我想知道${x%,*}${x#*,}背后的含义;特别是 %,*#*, 部分。我知道他们做什么,但我不知道他们怎么做!还有这些特殊字符叫什么!

我之所以有兴趣了解这是怎么回事,是为了能够在其他情况下复制相同的逻辑。因此,非常感谢任何类型的提示。

提前致谢! :)

最佳答案

  • ${x%,*}
    • 从字符串 $x结尾,删除last 逗号和所有后续字符
  • ${x%%,*}
    • 从字符串 $x结尾,删除第一个 逗号和所有后续字符
  • ${x#*,}
    • 从字符串 $x开头,删除直到并包括第一个 逗号的字符
  • ${x##*,}
    • 从字符串 $x开头,删除直到并包括最后一个 逗号的字符

我使用这些技巧来记住差异:

  • 在我的美式键盘上,#% 之前出现
  • ###
  • 更贪婪

关于linux - 如何解读${x%,*}和${x#*,}的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32785420/

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