我想输出目录中的所有标题.每行有一个条目,每行应以四个空格开头,并且应以空格和'\'字符结尾.
____header1.h_\
____header2.h_\
____header3.h_\
Run Code Online (Sandbox Code Playgroud)
我已经想出如何使每行输出一个条目.
ls -1 *.h
Run Code Online (Sandbox Code Playgroud)
但我不知道如何进行格式化.我应该在哪里学习更复杂的格式?
编辑:
所有答案中的所有脚本都会产生所需的输出.我希望我能接受所有答案.
你可以使用printf和shell通配而不是尝试格式化ls输出.
尝试类似的东西:
$ printf ' %s \\\n' *.h
a.h \
b.h \
c.h \
Run Code Online (Sandbox Code Playgroud)
ls 对于人类而言,它实际上是一种"互动"工具,避免将其用于其他任何事物.
小智 8
看
find . -maxdepth 3 -type f -iname "*" -printf "%h,%f,%CY-%Cm-%Cd %CT,%s,%u,%M\n"
Run Code Online (Sandbox Code Playgroud)
ls -1 *.h | sed 's/^/ /' | sed 's/$/ \\/'
Run Code Online (Sandbox Code Playgroud)
或者,你可以说:
ls -1 *.h | sed 's/.*/ & \\/'
Run Code Online (Sandbox Code Playgroud)
ls -l *.h|awk '/\.h/{print " "$0" \\"}'
Run Code Online (Sandbox Code Playgroud)
或者在 awk 中以更简单的方式:
> ls -1 *.h | awk '$0=" "$0" \\"'
Run Code Online (Sandbox Code Playgroud)
测试:
> ls -1 *.hh
Algorithms.hh
Timer.hh
a.hh
> ls -1 *.hh | awk '/\.hh/{print " "$0" \\"}'
Algorithms.hh \
Timer.hh \
a.hh \
>
Run Code Online (Sandbox Code Playgroud)
或者你可以使用 perl:
ls -1 *.h | perl -plne '$_=" ".$_." \\";'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2914 次 |
| 最近记录: |