1

txtファイルに保存されている列に一連の値があります。

A13R
W234H
Q1H

私が欲しいのは、最初の文字と最後の文字をタブで区切ることです。

A "\t" 13 "\t" R
W "\t" 234 "\t" H

私が試したのはもちろん失敗しました

tr "" "\t" <test.txt>test2.txt

bashで何か提案してもらえますか。

4

3 に答える 3

3

これは機能しますか?

sed 's/^./&\t/;s/.$/\t&/' file
于 2013-03-23T17:23:13.293 に答える
2

ピュアバッシュ; 部分文字列展開の使用:

while read line ; do
  echo -e "${line:0:1}\t${line:1:-1}\t${line: -1:1}"
done < data.txt
于 2013-03-23T18:01:55.293 に答える
2

それはあなたの質問でタグ付けされているので、あなたは次のperlようにユーザーにすることができます:

perl -pi -e 's/(.)(.*)(.)/\1\t\2\t\3/' < in.txt > out.txt

例のように、入力と出力に同じファイルを使用する場合は注意が必要ですtr。コマンドを実行する前に、シェルが入力ファイルと出力ファイルの両方を開くことを忘れないでください。出力ファイルは上書きされるため、コマンドを実行すると、空のファイルが検出されます。のように、これを回避するためのツールがありますが、sponge2つの異なるファイル名を使用するのも同じくらい簡単です。

于 2013-03-23T17:23:07.580 に答える