- ベストアンサー
unixコマンドを教えてください。
unixでユーザ変数の一部分を切り出すようなコマンドってありますか? sqlのsubstrのようなイメージです。 substr(sampleX,1,1)のように変数の中身の一部を見たいのですが。。。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 cshはスクリプトを書くには向かないです。 ファイルの2文字目だけ取り出すなら、awkなら awk '{print substr($0,2,1)}' filename.txt cutを使うなら、 cut -c2 filename.txt
その他の回答 (2)
- naozou
- ベストアンサー率30% (19/62)
回答No.2
区切りの場所(先頭からのバイト数)か区切り文字が決まっていれば、cutコマンドですかね。 cat hoge | cut -d':' -f1 みたいな感じ。
- notnot
- ベストアンサー率47% (4900/10358)
回答No.1
シェルがbashなら、 sampleX=abcdefg echo ${sampleX:0:1} で、先頭の1文字が取り出せます。${変数名:開始位置:長さ} です。 外部コマンドでやるなら、awk で、substr 関数を使うのがわかりやすいでしょう。 awk -v x="$sampleX" 'BEGIN{print substr(x,1,1)}'
お礼
回答ありがとうございます。 言い忘れましたが、私unix初心者です。 awkでsubstr関数を使うことってできたんですね! ちなみに質問では変数sampleXとしましたが、ファイルからも同じようにはできますか? ファイルAの内容:ABCDEFG として、Bだけを取り出したいとか。 すみません、また質問してしまって。
補足
できればcshで教えてください。m(__)m