cat sample.js | tr -d '\n\t' | tr -s ' '| sed 's:/\*.*\*/::g'
while read line;
do
echo $line;
done < file.txt
cat file.txt | (while read line ; do echo $line ; done)
(for w in $line;do echo $w;done)
(for((i=0;i<${#word};i++)) do echo ${word:i:1}; done)
${#word}:the length of word
paste按列合并文件:paste *.txt -d ";"
cat 按行合并文件:cat *.txt
打印文件或行中第n个单词或列:awk cut
ls -l | awk '{print $1":"$9}'
打印不同行或样式之间的文本:awk grep sed
cat 1.txt | awk 'NR==1,NR==2'
awk '/start_pattern/,/end_pattern/' 1.txt
文本中重复匹配之前的样式:(回文)
sed
sed '/^\(.\)\(.\)\2\1/p' 匹配四个长度的回文
sed awk 可参考 《sed与awk(第2版)》
rev 逆序echo "xie" | rev
if [ $# -ne 1 ];
then
echo "Usage : $0 string"
exit -1
fi
if [[ "$1" == "$(echo $1 | rev)" ]];
then
echo "Palindrome"
else
echo "Not Palindrome"
fi
echo $sentence | rev | tr ' ' '\n'| tac | tr '\n' ' ' | rev tac行反转 rev字符反转
seq 5 | tac -s "\t"
tac cat
seq 11 | awk '{ lifo[NR]=$0; lno=NR} END{for(;lno>-1;lno--){print lifo[lno];}}'
使用关联数组 NR行数
egrep -0 RE file
email:[A-Za-z0-9.]+@[A-Za-z0-9.]+\.[A-Za-z]{2,4}
egrep -o '[A-Za-z0-9.]+@[A-Za-z0-9.]+\.[A-Za-z]{2,4}' email.txt
URL:http://[A-Za-z0-9\-\.]+\.[a-zA-Z]{2,3}
打印样式之前或之后的n行
grep context line
grep -A 3 RE filename 之后3行
-B 3 之前3行
-C 2 前后2行
移除包含某个单词的句子:sed 利用“”替换匹配的句子
sed 's/[^.]*mobile phones[^.]*\.//g/' filename
[^.]* 匹配除.之外所有字母的组合,用于匹配一个句子
awk实现 head tail tac uniq 逐行操作
awk ‘NR<=10’ filename head -n 10
awk '...' tail -n 10
awk '{ buffer[NR] = $0;} END{ for(i=NR;i>0;i--) {print buffer[i]}}' filename
学会shell(二)
最新推荐文章于 2022-04-05 11:22:02 发布