テキスト形式のファイルがあります。
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進コード)の前に文字(エスケープされたバックスラッシュを除く)がある場合は一致することです。[^\\]