我想知道是否有一些内置的其他命令可以从输入中打印N列。例如awk '{print $2}'或cut...
当我想通过ssh运行管道输出时,它会使生活变得更容易(引用总是很糟糕的话),当然,它将使生活更轻松。
我目前有100个限制的黑客是:
function _printcol(){
while read data; do
[ -z "$fields" ] && fields=`for num in "$@"; do echo -n "\"\t\",\\$$num"; done`
echo $data | awk "{ print $fields }"
done
}
alias printcol=_printcol
ls -ltr | printcol 9
ls -ltr | printcol 1 9我想知道是否有人已经实施了。我更希望它是内置的,或者尽可能广泛地可用(比如多个股票发行版),或者在最坏的情况下容易安装(比如yum,apt,.)。
发布于 2014-10-29 21:23:49
重写
printcol() {
awk -v "fields=$*" '
BEGIN { n = split(fields, f) }
{
for (i=1; i<=n; i++) {
printf "%s%s", $(f[i]), OFS
}
print ""
}
'
}
seq 50 | pr -T5 | printcol 2 4 5备注:
发布于 2014-10-29 22:14:41
你想要容易安装的东西。只需在~/.bashrc文件中放置以下行:
printcol() { fields=$(printf '$%i,' "$@"); awk -v OFS='\t' "{ print ${fields%%,} }"; }调用它就像您正在做的那样:
ls -ltr | printcol 1 9https://stackoverflow.com/questions/26639607
复制相似问题