フォルダに/tmp
次のファイルがあります(例:)
1.id
2.id
3.id
4.id
まもなく...
このファイルには数値があります。たとえば、は1.id
どこにいるのか1000
、2.id
はどこにいるのか2000
などです。
*.id
1行のbashコマンドを使用してすべてのファイル()の値(番号)を自動的に取得し、ファイル名も追加したいと思います。
したがって、出力は次のようになります。
1.id=1000
2.id=2000
答え1
grep
このフォルダでこれを使用してください:
grep "" *.id
出力:
1.id:123
2.id:13
3.id:5
4.id:87876
ところで:私はこれをprocまたはsysfsファイルシステムでよく使用します。
cd /sys/class/net/eth0
grep "" *
これはsysfsのイーサネットインターフェイスに関するすべての情報を提供しますeth0
。
答え2
使用awk
awk '{printf "%s=%s\n",FILENAME,$0}' *.id
または
awk 'OFS="=" {print FILENAME,$0}' *.id
はい
% awk '{printf "%s=%s\n",FILENAME,$0}' *.id
1.id=1000
2.id=2000
% awk 'OFS="=" {print FILENAME,$0}' *.id
1.id=1000
2.id=2000
% awk '{printf "%s:%s\n",FILENAME,$0}' *.id
1.id:1000
2.id:2000
など。
答え3
これはbash
一行です。
for i in *.id; do echo ""$i"=$(<"$i")"; done
例:
$ ls -1
1.id
2.id
$ for i in *.id; do echo ""$i"=$(<"$i")"; done
1.id=10000
2.id=2000