LeetCode:Shell题目
2016-03-15 11:05
441 查看
题目一:Tenth Line
输出文件的第10行方法一:bash
#!/bin/bash var=1 while read line && [ $var -le 10 ] do if [ $var -eq 10 ] then echo $line exit 0 fi let var++ done < file.txt
方法二:tail与head组合
tail -n +10 file.txt | head -n 1
方法三: awk
awk 'FNR == 10 {print }' file.txt
方法四:sed
sed -n 10p file.txt
题目二:Transpose File
将文本的行变成列列变成行方法一:awk
awk ' { for(i=1;i<=NF;i++) { if(line[i]=="") { line[i]=$i } else { line[i]=line[i]" "$i } } } END{ for(i=1; i<=NF ;i++) { print line[i] } } ' file.txt
方法二:bash
array=() while read -a columns; do for (( i = 0; i < ${#columns[@]}; i++ )); do array[i]="${array[i]} ${columns[i]}" done done < file.txt for (( i = 0; i < ${#array[@]}; i++ )); do echo ${array[i]} done
题目三:Valid Phone Numbers
判断是否是合法的电话号码方法一:grep
grep -P '^(\d{3}-|\(\d{3}\) )\d{3}-\d{4}$' file.txt
方法二:awk
awk '/^([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-[0-9]{4}$/' file.txt
方法三:sed
sed -n -r '/^([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-[0-9]{4}$/p' file.txt
题目四:Word Frequency
统计单词的频率,降序输出方法一:awk
awk ' { for(i=1;i<=NF;i++) words[$i]++ } END{ for(word in words) { print word,words[word] } }' RS="[ \n]+" words.txt | sort -nrk2
相关文章推荐
- android wifi 无线调试
- 运维入门
- 动态清空 nohup 输出文件
- install scrapy with pip and easy_install
- Linux Shell常用技巧
- Shell 脚本编程陷阱
- shell字符串操作详解
- Shell中删除某些文件外所有文件的3个方法
- Ruby中执行Linux shell命令的六种方法详解
- VB使用shell函数打开外部exe程序的实现方法
- Shell编程的一些知识集合
- Shell中的for和while循环详细总结
- 什么是Shell?Shell脚本基础知识详细介绍
- Shell脚本中引用、调用另一个脚本文件的2种方法
- Shell脚本解压rpm软件包
- Linux Shell 数组建立及使用技巧
- Shell脚本实现复制文件到多台服务器的代码分享
- Shell脚本实现批量替换文件内容
- Shell脚本实现的一个简易Web服务器例子分享
- linux Shell学习笔记第五天