sysdateを使用した一意の名前リストの開発[閉じる]

sysdateを使用した一意の名前リストの開発[閉じる]

次のIDと名前を含むファイルがあります。

1234|abc|cde|fgh
5678|ijk|abc|lmn
9101|cde|fgh|klm
1213|klm|abc|cde

次の内容のみを含むファイルが必要です一意の名前リストとして。

結果ファイル:

abc|sysdate
cde|sysdate
fgh|sysdate
ijk|sysdate
lmn|sysdate
klm|sysdate

ここで、sysdateは現在の処理タイムスタンプです。

答え1

cut -f2- -d\| file.txt | tr \| '\n' | sort -u | sed 's/$/|sysdate/' 
  • cut入力から列を抽出し、-d使用する区切り文字を指定し、-f目的の列を指定します。したがって、ここではシェルで特別な意味を持つ|ため、バックスラッシュが必要な区切り文字で2から始まる各列を抽出します。|
  • tr音訳(つまり、|すべて改行文字に置き換え)
  • sort -u重複項目の並べ替えと削除
  • sed s///代替品です。ここで$行末( )を次に置き換えます。|sysdate

実際の日付を含めるには、最後の項目を次に変更します。

sed 's/$/|'"$(date)"/

その中には、$()コマンドを出力に置き換えるコマンド置換があります。

関連情報