可変サイズの行を読み、その内容をテキストを含む別の行に分割します。

可変サイズの行を読み、その内容をテキストを含む別の行に分割します。

可変長のヘッダー(最初の行)を持つファイルがあります。

"One"|"Two"|"Three"

または

"One"|"Two"|"Three"|...|"One Hundred"

ループを実行して新しいファイルに変換しようとしています。

"Hello One!"
"Hello Two!"
"Hello Three! ..."
"Hello One Hundred!"

どうすればいいですか? awkを使用していますか? sed?

寸法を変更しないと、解決策が見つかりません。

私のオペレーティングシステムはですLinux-RedHat-RHEL-6

ベストアンサー1

以下は、2回のsed呼び出しを含む単純なソリューションです(各行が引用されていると仮定)。

sed -n '1s#"|"#"\n"#gp' file | sed 's#"\(.*\)"#"Hello \1!"#'

最初の sed コマンドは「|」を改行文字に置き換えます。次に、テキストと感嘆符を追加します。

データがなく、|周囲の環境が"オプションの場合は、次のものを使用することもできます(より速くする必要があります)。

head -1 file | tr \| \\n | sed 's#"\?\(.*\)"\?#"Hello \1!"#'

おすすめ記事