Linux 单独变量为$1$2$3
给我:Linux 单独变量为$1$2$3,linux,bash,Linux,Bash,给我: sqlite3 pcheck.db "SELECT * FROM printers" 我想把|分隔的数据放入变量$1到$8中 这就是我们可以像这样输出它的原因 1|10.0.0.x|HP4250INK|public|hp LaserJet 4250|"CNHXXXXXX"|14457|"Sleep Mode" /test.sh echo "$1 $3 $5" echo "$2 $4 $6" 你可以用 1 HP4250INK hp Laserjet 4250 10.0.0.x pu
sqlite3 pcheck.db "SELECT * FROM printers"
我想把|分隔的数据放入变量$1到$8中
这就是我们可以像这样输出它的原因
1|10.0.0.x|HP4250INK|public|hp LaserJet 4250|"CNHXXXXXX"|14457|"Sleep Mode"
/test.sh
echo "$1 $3 $5"
echo "$2 $4 $6"
你可以用
1 HP4250INK hp Laserjet 4250
10.0.0.x public "CNHXXXXXX"
对于前三个,以及
echo $YOUR_STRING | cut -d'|' -f1,3,5
对于其他三个。您可以使用
1 HP4250INK hp Laserjet 4250
10.0.0.x public "CNHXXXXXX"
对于前三个,以及
echo $YOUR_STRING | cut -d'|' -f1,3,5
对于其他三个:尝试使用
awk
进行此操作:)
或:
尝试为此使用
awk
)
或:
您可以只使用bash而不使用外部工具
awk 'BEGIN { FS = "|" } ; { printf "%s\t%st\%s\n%s\t%s\t%s", $1, $3, $5, $2, $4, $6 }'
或者使用数组
output=$(sqlite3 pcheck.db "SELECT * FROM printers")
IFS="|"
set -- $output
echo $1
echo $2 #and so on
您可以只使用bash而不使用外部工具
awk 'BEGIN { FS = "|" } ; { printf "%s\t%st\%s\n%s\t%s\t%s", $1, $3, $5, $2, $4, $6 }'
或者使用数组
output=$(sqlite3 pcheck.db "SELECT * FROM printers")
IFS="|"
set -- $output
echo $1
echo $2 #and so on
很好,
设置--$output
做什么?如果您查看set
下bash
的手册页,`选项处理后剩余的任何参数都被视为位置参数的值,并按顺序分配给$1、$2$n、 “很好,设置--$output
做什么?如果您查看set
下bash
的手册页,`选项处理后剩余的任何参数都被视为位置参数的值,并按顺序分配给$1、$2,”$n`