我想要一个变量,其长度为变量.
的重复space
或pat
,我已经尝试了以下命令
awk -v pat="AAGCTT" -v rep=$("printf '.%.0s' length(pat)")
awk -v pat="AAGCTT" -v rep=$("printf '.%.0s' {1..length(pat)}")
some actions using both pat & rep as variable
但是输出了以下错误
printf '.%.0s' {1..length(pat)}: command not found
如何生成所需的变量?
答案 0 :(得分:3)
您可以使用:
var=$(awk -v pat="AAGCTT" 'BEGIN { printf "%*s", length(pat), "" }')
echo "${#var}"
6
您可以执行printf
并重用gsub
来代替rep
:
var=$(awk -v pat="AAGCTT" -v rep="." 'BEGIN {
gsub(/./, rep, pat); print pat}')
答案 1 :(得分:0)
我找到了一种分配rep
并重复X
字符length(pat)
awk -v pat="AAGCTT" -v rep="X" 'BEGIN {var = pat;gsub(/./,rep,var);} {
some action
}'
其中
pat = "AAGCTT"
rep = "X"
var = "XXXXXX"