Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在bash中如何剥离字符串_Bash - Fatal编程技术网

在bash中如何剥离字符串

在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或

我有一个名为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或$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