[LeetCode]Transpose File | 书影博客
awk ' { for (i = 1; i <= NF; i++) { a[NR, i] = $i } } NF > p { p = NF } END { for (j = 1; j <= p; j++) { str = a[1, j] for (i = 2; i <= NR; i++){ str = str " " a[i, j] } print str } }' file.txt
http://blog.csdn.net/sole_cc/article/details/44993831
#!/bin/bash
awk '
{
for(i=1;i<=NF;i++){
if(NR==1){
s[i]=$i;
}else{
s[i]=s[i]" "$i;
}
}
}
END{
for(i=1;s[i]!="";i++)
print s[i];
}
' file.txt
awk '
{
for (i=1; i<=NF; i++) {
a[NR,i] = $i
}
}
NF>p { p = NF } //条件类型{动作},没有给p赋值,p应该为0
END {
for(j=1; j<=p; j++) {
str=a[1,j]
for(i=2; i<=NR; i++){
str=str" "a[i,j];
}
print str
}
}' file.txt
1、awk中二位数组的定义
2、循环控制的上线(NR,NF)
3、awk中的链接操作,直接将几个变量并排写就是一个新变量
http://accepted.com.cn/leetcode194/
Read full article from [LeetCode]Transpose File | 书影博客
Given a text file
file.txt
, transpose its content.
You may assume that each row has the same number of columns and each field is separated by the
' '
character.
For example, if
file.txt
has the following content:name age alice 21 ryan 30
Output the following:
name alice ryan age 21 30
awk ' { for (i = 1; i <= NF; i++) { a[NR, i] = $i } } NF > p { p = NF } END { for (j = 1; j <= p; j++) { str = a[1, j] for (i = 2; i <= NR; i++){ str = str " " a[i, j] } print str } }' file.txt
http://blog.csdn.net/sole_cc/article/details/44993831
#!/bin/bash
awk '
{
for(i=1;i<=NF;i++){
if(NR==1){
s[i]=$i;
}else{
s[i]=s[i]" "$i;
}
}
}
END{
for(i=1;s[i]!="";i++)
print s[i];
}
' file.txt
awk '
{
for (i=1; i<=NF; i++) {
a[NR,i] = $i
}
}
NF>p { p = NF } //条件类型{动作},没有给p赋值,p应该为0
END {
for(j=1; j<=p; j++) {
str=a[1,j]
for(i=2; i<=NR; i++){
str=str" "a[i,j];
}
print str
}
}' file.txt
1、awk中二位数组的定义
2、循环控制的上线(NR,NF)
3、awk中的链接操作,直接将几个变量并排写就是一个新变量
http://accepted.com.cn/leetcode194/
while read -a line; do
for ((i=0; i < "${#line[@]}"; i++)); do
a[$i]="${a[$i]} ${line[$i]}"
done
done < file.txt
for ((i=0; i < ${#a[@]}; i++)); do
echo ${a[i]}
done
Also check http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.htmlRead full article from [LeetCode]Transpose File | 书影博客