Shellプログラミングのよくある面接問題(続き)

3167 ワード

Shellプログラミングのよくある面接問題(続き)
1.Linuxコマンドを使用してfileの空の行がある行番号を問い合わせる
awk '/^$/{print NR}' file.txt

2、ファイルcj.txtの内容は以下の通りで、Linuxコマンドを使用して第2列の和と出力を計算する
張三70
李四80
王五90
cat cj.txt | awk -F " " '{sum+=$2}END{print "sum="sum}'

[root@sandbox-hdp ~]# cat cj.txt | awk -F " " '{sum+=$2}END{print "sum="sum}'
sum=240

3、Shellスクリプトの中でどのように1つのファイルが存在するかを検査しますか?存在しない場合はどうすればいいですか?
#!/bin/bash
if [ -f file.txt]; then
	echo "    "
else
	echo "     "
fi

4、shellで1つのスクリプトを書いて、テキストの中の無秩序な1列の数字に対して並べ替えて和を求めます
cat demo.txt
2
5
1
4
6
3
sort -n demo.txt | awk '{a+=$0;print$0}END{print "SUM="a}'
[root@sandbox-hdp ~]# sort -n demo.txt | awk '{a+=$0;print$0}END{print "SUM="a}'
1
2
3
4
5
6
SUM=21

5、shellスクリプトで現在のフォルダ(/opt/data)の下のすべてのテキストファイルの内容に文字「zhang」が含まれているファイル名を検索してください
grep -r "zhang" /opt/data
[root@sandbox-hdp ~]# grep -r "zhang" /opt/data
/opt/data/test2.txt:zhang san

#     ,     /opt/data       linie     
grep -r "linie" /opt/data | cut -d " " -f 1
[root@sandbox-hdp ~]# grep -r "linie" /opt/data | cut -d " " -f 1
/opt/data/test1.txt:linie
/opt/data/test2.txt:linie