エスケープされていないスペースに分離を切り捨てますか?

エスケープされていないスペースに分離を切り捨てますか?

テキスト形式のファイルがあります。

User\ Name My\ Password

これは、実際に列にエスケープされたスペースを含む2列ファイルです。

cut -d' ' -f2スポーンしたいNameがスポーンしたいですMy Password

cutエスケープされていない空白のみを基準として使用および分離できますか?そうでない場合、どの代替コマンドを使用できますか?

答え1

私はGNUをお勧めしますgrep方法:

サンプルinput.txt:

User\ Name My\ Password
first\ field second\ field

2番目のフィールドを切り取ります。2列文書:

grep -Po '[^\\]\x20\K.*' input.txt

出力:

My\ Password
second\ field

またはsed:

sed 's/.*[^\\]\x20\(.*\)/\1/' input.txt

----------

キー正規表現パターン部分は、[^\\]\x20空白\x20(空白16進コード)の前に文字(エスケープされたバックスラッシュを除く)がある場合は一致することです。[^\\]

関連情報