全国最好网站建设,商城分销,做网站一定要实名认证吗,科技国防目录
193. 有效电话号码 Valid Phone Numbers #x1f31f;
194. 转置文件 Transpose File #x1f31f;#x1f31f;
#x1f31f; 每日一练刷题专栏 #x1f31f;
Golang每日一练 专栏
Python每日一练 专栏
C/C每日一练 专栏
Java每日一练 专栏 193. 有效电话号…
目录
193. 有效电话号码 Valid Phone Numbers
194. 转置文件 Transpose File 每日一练刷题专栏
Golang每日一练 专栏
Python每日一练 专栏
C/C每日一练 专栏
Java每日一练 专栏 193. 有效电话号码 Valid Phone Numbers
给定一个文本文件 file.txt请只打印这个文件中的第十行。
示例:
假设 file.txt 有如下内容
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
Line 10你的脚本应当显示第十行
Line 10说明: 1. 如果文件少于十行你应当输出什么 2. 至少有三种不同的解法请尝试尽可能多的方法来解题。
代码
package mainimport (bufiofmtos
)func main() {file, err : os.Open(file.txt)if err ! nil {fmt.Println(err)return}defer file.Close()scanner : bufio.NewScanner(file)lineNum : 0for scanner.Scan() {lineNumif lineNum 10 {fmt.Println(scanner.Text())break}}if err : scanner.Err(); err ! nil {fmt.Println(err)}
}调用系统命令
awk NR10{print} file.txt 或 sed -n 10p file.txt
调用代码
package mainimport (fmtos/exec
)func main() {cmd : exec.Command(awk, NR10{print}, file.txt)//或 cmd : exec.Command(sed, -n, 10p, file.txt)output, err : cmd.Output()if err ! nil {fmt.Println(err)}fmt.Print(string(output))
}194. 转置文件 Transpose File
给定一个文件 file.txt转置它的内容。
你可以假设每行列数相同并且每个字段由 分隔。
示例
假设 file.txt 文件内容如下
name age
alice 21
ryan 30应当输出
name alice ryan
age 21 30
代码
package mainimport (bufiofmtosstrings
)func main() {// 打开文件file, err : os.Open(file.txt)if err ! nil {fmt.Println(err)return}defer file.Close()// 逐行处理文件并将处理结果存入二维切片中scanner : bufio.NewScanner(file)wordsSlice : make([][]string, 0)for scanner.Scan() {words : strings.Fields(scanner.Text())wordsSlice append(wordsSlice, words)}// 构建列向量切片并打印for col : 0; col len(wordsSlice[0]); col {colWords : make([]string, 0)for row : 0; row len(wordsSlice); row {colWords append(colWords, wordsSlice[row][col])}fmt.Println(strings.Join(colWords, ))}
}调用系统命令
awk BEGIN{FS\t}{for(i1;iNF;i){arr[i]arr[i] $i}}END{for(i1;iNF;i){print substr(arr[i], 2)}} file.txt
调用代码
package mainimport (bufiofmtos/execstrings
)func main() {cmd1 : exec.Command(awk, BEGIN{FS\\\t\}{for(i1;iNF;i){arr[i]arr[i]\ \$i}}END{for(i1;iNF;i){print substr(arr[i], 2)}} , file.txt)output, err : cmd1.Output()if err ! nil {fmt.Println(err)return}scanner : bufio.NewScanner(strings.NewReader(string(output)))for scanner.Scan() {fmt.Println(scanner.Text())}if err : scanner.Err(); err ! nil {fmt.Println(err)}
}每日一练刷题专栏
✨ 持续努力奋斗做强刷题搬运工 点赞你的认可是我坚持的动力 收藏你的青睐是我努力的方向
✎ 评论你的意见是我进步的财富
☸ 主页https://hannyang.blog.csdn.net/ Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏