Fork me on GitHub

sed&awk


p=patten
r=replaced
echo "line con a patten" | sed "s/$p/$r/g"
$>line con a replaced
awk 'NR < 5' #行号小于5
awk 'NR==1,NR==4 {print}' file #行号等于1和4的打印出来
awk '/linux/' #包含linux文本的行(可以用正则表达式来指定,超级强大)
awk '!/linux/' #不包含linux文本的行
for(i=0;i<10;i++){print $i;}
for(i in array){print array[i];}
seq 9| \
awk '{lifo[NR] = $0; lno=NR} \
END{ for(;lno>-1;lno--){print lifo[lno];}
} '
while read line;
do
echo $line;
done < file.txt

改成子shell:
cat file.txt | (while read line;do echo $line;done)
改写成awk:
cat file.txt| awk '{print}'
${string:start_pos:num_of_chars}:从字符串中提取一个字符;(bash文本切片)

${#word}:返回变量word的长度

for((i=0;i<${#word};i++))
do
echo ${word:i:1);
done

以ASCII字符显示文件:

$od -c filename