Bash 如何使用printf生成N列
我目前正在使用:Bash 如何使用printf生成N列,bash,Bash,我目前正在使用: printf "%14s %14s %14s %14s %14s %14s\n" $(cat NFE.txt)>prueba.txt 这将读取NFE.txt中的列表并生成6列。我需要生成N个列,其中N是一个变量 有没有一种简单的说法,比如: printf "N*(%14s)\n" $(cat NFE.txt)>prueba.txt 这会产生欲望输出?你可以这样做,尽管我不知道它会有多强大 # T1 is a white string with N bla
printf "%14s %14s %14s %14s %14s %14s\n" $(cat NFE.txt)>prueba.txt
这将读取NFE.txt
中的列表并生成6列。我需要生成N个列,其中N是一个变量
有没有一种简单的说法,比如:
printf "N*(%14s)\n" $(cat NFE.txt)>prueba.txt
这会产生欲望输出?你可以这样做,尽管我不知道它会有多强大
# T1 is a white string with N blanks
T1=$(printf "%${N}s")
# Replace every blank in T with string %14s and assign to T2
T2="${T// /%14s }"
# Pay attention to that T2 contains a trailing blank.
# ${T2% } stands for T2 without a trailing blank
printf "${T2% }\n" $(cat NFE.txt)>prueba.txt
$(printf 'printf '; printf '%%14s%0.s' {1..6}; printf '\\n') $(<file)
^
This is your variable number of strings
输出
10 20 30 40 50 1
0 1 3 45 6 78
9 4 3 123 4 5
4 8 4 2 4
您可以用纯bash编写,但也可以使用现有的语言。例如:
printf "$(python -c 'print("%14s "*6)')\n" $(<NFE.txt)
repeat() { (($1)) && printf "%s%s" "$2" "$(times $(($1-1)) "$2")"; }
然后在printf中使用:
printf "$(repeat 6 "%14s ")\n" $(<NFE.txt)
printf“$(重复6”%14s”)\n“$(NFE.txt中的内容是一个包含如下内容的文件:text…所以一行?不起作用,但可能是我的错。我在prueba.txt中得到的只是一个问号…使用的n值是:n=$(grep-c“text”file)“1”T1中缺失。抱歉,有问题。THX分配!我仍然在这里和那里有一些问号,但可以处理
printf "$(repeat 6 "%14s ")\n" $(<NFE.txt)