2016-12-28 21 views
-1

テキストファイルの各行から最初と最後の文字を削除する必要があります。例えばtxtファイルの各行から最初と最後の文字を削除します

入力

$cat file1.txt 
|head1|head2|head3| 
|1|2|3| 
|2|3|4| 

出力:

SEDを使用して
head1|head2|head3 
1|2|3 
2|3|4 
+0

いつもパイプで終了しますか? –

+0

| MRCコード|製品|ブラボーマイナー|期間|現在の年|バージョン|国コード| G/L Accoun |純資産単位 - アンヌム| MU |売却額 - 単位当たり純資産|毎月|販売通貨| ICPフラグ|アップロードID | | 1757 | 02.100.004 | 47830 | 10 | 2016 | 0 | PR | 60515900 | 1.000 | EA | 0.00 | 0.000 | 0.00 | | Y | 157282 | – smisra3

+0

上記のサンプルデータを – smisra3

答えて

0

sed 's/.$//; s/^.//' inputfile 
+0

このコマンドは最初の '|'のみ。最後のものではありません – smisra3

+0

| MRCコード|製品|ブラボーマイナー|期間|現年|バージョン|国コード| G/L Accoun |純資産単位 - アンヌム| MU |売却額 - |売上高 - 月間|販売通貨| ICPフラグ|アップロードID | | 1757 | 02.100.004 | 47830 | 10 | 2016 | 0 | PR | 60515900 | 1.000 | EA | 0.00 | 0.000 | 0.00 | | Y | 157282 | – smisra3

+0

サンプルデータを追加 – smisra3

0

1つのsedコマンドでそれを行うための簡単な方法:

sed -E 's/^.|.$//g' file 

行の先頭または末尾の文字をマッチし、何も置き換えません。基本モードでは

|ニーズをエスケープすることを忘れないでください:

sed 's/^.\|.$//g' file 
+0

このコマンドは最初の '|'のみ。最後のものではありません – smisra3

+0

| MRCコード|製品|ブラボーマイナー|期間|現年|バージョン|国コード| G/L Accoun |純資産単位 - アンヌム| MU |売却額 - |売上高 - 月間|販売通貨| ICPフラグ|アップロードID | | 1757 | 02.100.004 | 47830 | 10 | 2016 | 0 | PR | 60515900 | 1.000 | EA | 0.00 | 0.000 | 0.00 | | Y | 157282 | – smisra3

+0

がsmapleのデータを追加しました – smisra3

0

awkの場合は便利です:

awk '{print substr($0,2,length($0)-2)}' file 
head1|head2|head3 
1|2|3 
2|3|4 
0

smisra- @次の試してみてくださいでした、それはであなたを助けるかもしれません同じです。

awk '{gsub(/^\||\|$/,X,$0);print}' Input_file 
関連する問題