Unix:ファイルから1行の生の内容を読み取る方法

Unix:ファイルから1行の生の内容を読み取る方法

次の内容のデータファイルがあります。

department: customer service  section: A
department: marketing         section: A
department: finance           section: A

各行を読みながらコマンドを使用して部門名を抽出しますcut。残念ながら、プログラムはtrim不要なスペースをすべて自動的に削除するので、誤って部門名を切りました。

cat dept.dat | while read line
do
    echo $line
    echo $line | cut -c 12-29
done

たとえば、元の行は次のようになります。

department: marketing         section: A

プログラムはこの行を次のように処理します。

department: marketing section: A

不要なスペースをすべて切り取ることなく、どのように行を読むことができますか?

ベストアンサー1

拡張するとスペースが失われます$line。変数拡張の周りに二重引用符を入れると、空白が保持されます。

$ cat dept.dat | while read line
> do
>     echo "$line"
>     echo "$line" | cut -c 12-29"
> done
department: customer service  section: A
 customer service 
department: marketing         section: A
 marketing        
department: finance           section: A
 finance          

おすすめ記事