繁体   English   中英

将文本文件中的 url 解析为 bash shell 数组

[英]parsing urls from a text file to bash shell array

我有一个包含许多网址的文本文件

www.example1.com
www.example2.com
www.example3.com
www.example4.com

我 go 如何遍历它,并将每个 url 解析为一个数组实例..

IE

array[0]
array[1]
array[2]
array[3]

多谢你们

纯bash方式:

array=($(<inFile))

然后:

# list all the elements of array
echo "${array[@]}"

# echo num of elements in array
echo ${#array[@]}

## OR loop through the above array
for i in "${array[@]}"
do
   echo $i # or do whatever with individual element of the array
done

# 1st element of array
echo ${array[0]}

# 2nd element of array
echo ${array[2]}

# ...

( $(< file.txt) )的一个问题是文件中的一行是否可以包含空格。 考虑由

a b
c
d

该数组将包含4个元素,而不是3个。URL不能包含空格,因此这里不是问题。 对于一般情况, bash 4提供了一个mapfile命令,该命令可确保每一行为数组提供单个元素。

mapfile array < file.txt

是以下循环的单步替换:

while IFS= read -r line; do
    array+=( "$line" )
done < file.txt

如果你想让数组在你的脚本中而不是读取文件,你可以使用这种方法。

#!/bin/bash

array=(
"www.example1.com"
"www.example2.com"
"www.example3.com"
"www.example4.com"
)

for URL in "${array[@]}"; do
    echo "$URL"
done

暂无
暂无

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

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