• ベストアンサー

unixコマンドを教えてください。

unixでユーザ変数の一部分を切り出すようなコマンドってありますか? sqlのsubstrのようなイメージです。 substr(sampleX,1,1)のように変数の中身の一部を見たいのですが。。。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.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)}'

zuuzuuzuu
質問者

お礼

回答ありがとうございます。 言い忘れましたが、私unix初心者です。 awkでsubstr関数を使うことってできたんですね! ちなみに質問では変数sampleXとしましたが、ファイルからも同じようにはできますか? ファイルAの内容:ABCDEFG として、Bだけを取り出したいとか。 すみません、また質問してしまって。

zuuzuuzuu
質問者

補足

できればcshで教えてください。m(__)m

関連するQ&A