在bash中如何剥离字符串
我有一个名为input的变量,它是以空格分隔的,我想用冒号去掉字符串,然后得到第三个元素在bash中如何剥离字符串,bash,Bash,我有一个名为input的变量,它是以空格分隔的,我想用冒号去掉字符串,然后得到第三个元素 您可以使用输入字符串填充BASH数组,然后替换直到最后一个冒号的所有内容: input='a:b:c 1:2:3 x:y:z' read -ra arr <<< "$input" echo "${arr[@]/*:}" c 3 z 您可以使用for循环和: 或 grep搜索任何具有以下内容的字符:在itusing positive lookbehind断言之后\swhitespace或
您可以使用输入字符串填充BASH数组,然后替换直到最后一个冒号的所有内容:
input='a:b:c 1:2:3 x:y:z'
read -ra arr <<< "$input"
echo "${arr[@]/*:}"
c 3 z
您可以使用for循环和:
或
grep搜索任何具有以下内容的字符:在itusing positive lookbehind断言之后\swhitespace或$end of line在itusing positive lookbehind断言之后
对于这些字符中的每一个,我们都将其按顺序粘贴,将行转换为具有分隔符作为空格的值的行
echo a:b:c 1:2:3 x:y:z | awk -F '[: ]' '{print $3,$6,$9}'
c 3 z
为了打印每个字段中的第三个字符,我们必须使用分隔符。
在这种情况下,最明显的是冒号,但字段之间的空间也必须考虑。然后就可以打印每个…我相信你会在这里发现很多关于如何打印的问题。你可能想看看awk、cut和sedCare的手册页来解释一下:朱利安洛佩兹补充道:“太棒了,你能解释一下吗?”
for values in $input; do
echo "$values" | cut -d ':' -f 3
done
echo a:b:c 1:2:3 x:y:z | awk -F: '{print $3,$5,$7}' |awk '{print $1,$3,$5}'
echo a:b:c 1:2:3 x:y:z | tr ':' ' ' |awk '{print $3,$6,$9}'
$ grep -oP '(?<=:).(?=\s|$)' <<< 'a:b:c 1:2:3 x:y:z' | paste -s -d ' '
c 3 z
echo a:b:c 1:2:3 x:y:z | awk -F '[: ]' '{print $3,$6,$9}'
c 3 z