[英]AWK command to display columns as rows
./pkg_FC.mwlib
TILE_FC:1
TILE_FC:2
TILE_FC:3
TILE_FC:4
我可以使用awk命令带来此结果。 但是我需要输出
./pkg_FC.mwlib TILE_FC:1 TILE_FC:2 TILE_FC:3 TILE_FC:4
如何实现此输出。 还有如何将此输出写入文件。 我正在使用以下脚本,使用foreach来获得以上输出。
foreach libname ( `find . -name "*mwlib"` )
echo $libname
ls -l $libname/FRAM | awk '{print $9}'
end
提前致谢
您使用了错误的工具并违反了Shell编程的2条基本规则:
for file in $(command)
写入for file in $(command)
,并且 ls
的输出。 用于查找文件的UNIX命令名为find
。 在其手册页中查找-printf
和-exec
,并在手册页中查找xargs
和stat
。
如果必须循环从某些命令输出的文件名,则语法应与此或类似:
command | while IFS= read -r file; do
...
done
对于换位,您可以执行以下操作:
$ printf "TILE_FC:%d\n" {1..4} | awk 'ORS=(NR%4?" ":RS)'
TILE_FC:1 TILE_FC:2 TILE_FC:3 TILE_FC:4
$ printf "TILE_FC:%d\n" {1..6} | awk 'ORS=(NR%4?" ":RS)'
TILE_FC:1 TILE_FC:2 TILE_FC:3 TILE_FC:4
TILE_FC:5 TILE_FC:6
$ printf "TILE_FC:%d\n" {1..8} | awk 'ORS=(NR%4?" ":RS)'
TILE_FC:1 TILE_FC:2 TILE_FC:3 TILE_FC:4
TILE_FC:5 TILE_FC:6 TILE_FC:7 TILE_FC:8
更改4
中NR%4
,如果你想的宽度是不同的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.