Это действительно самоочевидно. Я работаю в оболочке bash, и я действительно новичок в сценариях оболочки. Я нашел много информации об использовании tr
и sed
, но все примеры, которые я нашел до сих пор, удаляют разделители и новые строки. Я очень хочу сделать наоборот. Я хочу иметь возможность разделять на основе пустого пространства. У меня есть строка типа «abcd efgh», и мне нужно, чтобы она была «abcd» «efgh» (все без кавычек, просто для группировки).
Я уверен, что это намного проще, чем я это делаю, но я очень смущен.
Обновленный вопрос:
У меня есть столбец PID, который я поместил в массив, но каждый элемент массива имеет оба pid в столбце.
Столбец:
1234
5678
когда я распечатываю весь массив, добавляются все разные столбцы, поэтому у меня есть все значения, но когда я распечатываю один элемент своего массива, я получаю что-то вроде:
1234 5678
чего я не хочу. Мне нужно иметь элемент для 1234 и отдельный для 5678.
Это мой код до сих пор:
!/bin/bash
echo "Enter the File Name"
read ips
index=0
IFS=' '
while read myaddr myname; do
myips[$index]="$myaddr"
names[$index]="$myname"
index=$(($index+1))
done < $ips
echo "my IPs are: ${myips[*]}"
echo "the corresponding names are: ${names[*]}"
echo "Total IPs in the file: ${index}"
ind=0
for i in "$myips[@]}"
do
echo $i
pids=( $(jps | awk '{print $1}') )
for pid in "${pids[@]}"; do
echo $pid
done
echo "my PIDs are: ${pids}"
for j in "${pids[@]}"
do
mypids[$ind]="$j"
ind=$(($ind+1))
done
done
echo "${mypids[*]}"
echo "The 3rd PID is: ${mypids[2]}"
ВЫВОД ОБРАЗЦА:
Total IPs in the file: 6
xxx.xxx.xxx.xxx
5504
1268
1
xxx.xxx.xxx.xxx
5504
4352
1
xxx.xxx.xxx.xxx
5504
4340
1
5504
1268 5504
4352 5504
4340
The 3rd pid is: 5504
4340
Мне нужно, чтобы каждый pid был отдельным, чтобы каждый элемент массива был одним pid. Так, например, строка «Третий pid:» должна выглядеть примерно так:
The 3rd pid is: 5504
и 4-й элемент будет 4340
jps
? кроме того, вам не хватает открывающей скобки для$myips[@]}
- person Shawn Chin   schedule 03.08.2012for j in "${pids}"
должно бытьfor j in ${pids[@]}
? - person Shawn Chin   schedule 03.08.2012$IFS
, и это испортило оставшуюся часть вашего скрипта, который использует$IFS
для разделения данных столбца на элементы массива. Смотрите обновленный ответ ниже. - person Shawn Chin   schedule 03.08.2012