gpt4 book ai didi

linux - 如何将脚本从 using command,read 转换为 command,cut?

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

这是测试样本:

test_catalog,test_title,test_type,test_artist

我可以使用下面的脚本将上面的文本用逗号截断并分别设置变量:

IFS=","
read cdcatnum cdtitle cdtype cdac < $temp_file

(ps:$temp_file是测试样本的目录)

如果我想用命令替换读取,剪切。有什么想法吗?

最佳答案

有很多解决方案:

line=$(head -1 "$temp_file")
echo $line | cut -d, ...

cut -d, ... <<< "$line"

或者您可以告诉 BASH 将该行复制到一个数组中:

typeset IFS=,
set -A ARRAY $(head -1 "$temp_file")
# use it
echo $ARRAY[0] # test_catalog
echo $ARRAY[1] # test_title
...

我更喜欢数组解决方案,因为它为您提供了独特的数据类型并清楚地传达了您的意图。 echo/cut 解决方案也有点慢。

[EDIT] 另一方面,read 命令将行拆分为单独的变量,为每个值指定一个名称。哪个更具可读性:$ARRAY[0]$cdcatnum

如果你移动列,你只需要重新排列read命令的参数 - 如果你使用数组,你将不得不更新你 弄错了。

此外,read 使处理整个文件变得更加简单:

while read cdcatnum cdtitle cdtype cdac ; do
....
done < "$temp_file"

关于linux - 如何将脚本从 using command,read 转换为 command,cut?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9630865/

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