使用Shell脚本格式化行
我在一个文件夹中有一个shell脚本列表(以.sh结尾),我正在尝试创建一个列表,该列表每行应该有两个脚本名(用空格分隔)。我编写了下面的脚本,但它在不显示任何错误的情况下无法工作。我希望在这里得到一些帮助:使用Shell脚本格式化行,shell,format,line,Shell,Format,Line,我在一个文件夹中有一个shell脚本列表(以.sh结尾),我正在尝试创建一个列表,该列表每行应该有两个脚本名(用空格分隔)。我编写了下面的脚本,但它在不显示任何错误的情况下无法工作。我希望在这里得到一些帮助: file1="" for file in $(ls ./*.sh); do i=1 file1="$file1$file " if [ $i -lt 3 ]; then i=$(( i++ )) continue fi ech
file1=""
for file in $(ls ./*.sh); do
i=1
file1="$file1$file "
if [ $i -lt 3 ]; then
i=$(( i++ ))
continue
fi
echo "file1 is $file1" # expected $file1 is: scriptName1.sh scriptName2.sh
echo $file1 >> ScriptList.txt # save the two file names in the text file
file1=""
done
每次在循环中设置
i=1
不是一个好主意
试一试
每次在循环中设置
i=1
不是一个好主意
试一试
要获得制表符分隔的输出:
ls *.sh | paste - -
要获得制表符分隔的输出:
ls *.sh | paste - -
该实用程序也可以方便地进行列化。它可以“垂直”拆分数据:
或“水平”
该实用程序也可以方便地进行列化。它可以“垂直”拆分数据:
或“水平”
+1用于粘贴,但不应使用
ls
,请使用printf“%s\n”*。sh |粘贴--
有办法获得“空格”分隔的输出吗?谢谢,printf有帮助吗?我喜欢使用printf“%25s\n”*sh
来帮助对齐,但没有宽度说明符似乎并不重要。要将分隔符更改为空格,请使用paste-d'-
+1进行粘贴,但不应使用ls
,使用printf“%s\n”*。sh |粘贴--
有办法获得“空格”吗分离输出?谢谢,printf有帮助吗?我喜欢使用printf“%25s\n”*sh
来帮助对齐,但如果没有宽度说明符,这似乎无关紧要。要将分隔符更改为空格,请使用paste-d'-
注意,-1
在管道传输或重定向ls
的输出时自动启用。将ls
与ls | cat
进行比较,但是,ls>/dev/tty
将生成列:)注意,当ls
的输出通过管道传输或重定向时,-1
将自动启用。将ls
与ls | cat
进行比较,但是,ls>/dev/tty
将生成列:)
$ seq 10 | pr -2 -T -s" "
1 6
2 7
3 8
4 9
5 10
$ seq 10 | pr -2 -T -s" " -a
1 2
3 4
5 6
7 8
9 10